我有点想知道我是不是疯了,但我向你发誓,这段代码输出笑脸作为 .name 值!!到底发生了什么?到目前为止,它似乎只在值为 1 时才起作用,其他任何东西都会正确地给出错误。
我意识到代码有缺陷 -> 我不需要这方面的帮助。
#include <iostream>
#include <fstream>
#include <regex>
#include <string>
#include <list>
using namespace std;
using namespace tr1;
struct CollectedData
{
public:
string name;
float grade;
};
int main()
{
string line;
list<CollectedData> AllData;
int count;
ifstream myFile("test_data.txt");
if (myFile.fail()) {cout << "Error opening file"; return 0;}
else
{
cout << "File opened... \n";
while( getline(myFile, line) ) {
CollectedData lineData;
lineData.name = 1;
lineData.grade = 2;
AllData.push_back(lineData);
}
}
cout << "\n\n File contents: \n";
list<CollectedData>::iterator Iterator;
for(Iterator = AllData.begin();
Iterator != AllData.end();
Iterator++)
{
cout << "\t" << (*Iterator).name << " - ";
cout << "\t" << (*Iterator).grade << "\n";
}
getchar();
return 1;
}
:-) http://img21.imageshack.us/img21/4600/capturekjc.jpg
我知道代码没用,
我想知道为什么它给我笑脸而不是错误
安慰。 . . mock
最佳答案
笑脸是 ASCII 值为 1 的字符。不知道为什么,但显然你的编译器决定把它当作一个字符,所以你得到了笑脸。
关于c++ - 为 struct 属性分配不正确的值类型时的笑脸!,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1355564/