【发布时间】:2014-09-16 13:01:14
【问题描述】:
由于某种原因,我的原型程序没有按预期输出。
我的文本文件:(以制表符分隔)
NameOne NameTwo NameThree 56789
我的源代码:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
string name1, name2, name3, name4, name5,fullName;
ifstream inFile;
string attendance;
int index;
inFile.open("test2.dat");
getline(inFile, name1, '\t');
getline(inFile, name2, '\t');
getline(inFile, name3, '\t');
if (name3.at(0) == 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
{
attendance = name3;
fullName = name1 + ' ' + name2;
}
else
{
getline(inFile, name4, '\t');
if (name4.at(0) == 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
{
attendance = name4;
fullName = name1 + ' ' + name2 + ' ' + name3;
}
else
{
getline(inFile, name5, '\t');
if (name5.at(0) == 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
{
attendance = name5;
fullName = name1 + ' ' + name2 + ' ' + name3 + ' ' + name4;
}
else
{
fullName = name1 + ' ' + name2 + ' ' + name3 + ' ' + name4 + ' ' + name5;
inFile >> attendance;
}
}
}
cout << endl << fullName << endl << attendance << endl << endl;
system("pause");
return 0;
}
预期输出:
NameOne NameTwo NameThree
56789
实际输出:
NameOne NameTwo
NameThree
出于某种原因,它会将字符串 NameThree 存储到出席中并输出。 我期待将 NameFour 存储到出席中。
【问题讨论】:
-
您希望
if (name3.at(0) == 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)做什么?打开编译器警告,让编译器指出你的方式的错误。 -
name3.at(0) == 0, 1, 2, 3, 4, 5, 6, 7, 8, 9是什么意思? -
我不认为这个问题需要被否决,它在所有方面都可以
-
@barakmanos 如果字符串的第一个字符是数字
标签: c++ if-statement output getline