screenshot 嗨,大家好我试图读取连续3个双打的文本文件,然后将这三个值保存到我的变量中(每个双变量1个变量)。
到目前为止,我的代码看起来像这样:
cout<<"ready to read file...:";
ifstream theFile("pose.txt");
double first,second,third;
while(theFile >> first >> second >> third){
cout<<"In while loop and got following values: ";
cout<< first<<endl<< second <<endl<< third;
}
我的输入文件在打开时看起来像这样:
1.5 2.4 3.3
然而,即使第一个cout运行并且它告诉我程序已准备好读取文件,它也不会进入while循环。
我尝试过使用其他方法来阅读无效的文件。
欢迎任何帮助, 感谢。
答案 0 :(得分:0)
我在StackOverflow上的另一个问题上找到了答案。 这是答案的链接: https://stackoverflow.com/a/23448835/4117002
基本上我必须在Xcode中指定文本文件的路径,即使我已经在项目中创建了它。
感谢所有人的帮助!
答案 1 :(得分:0)
我不会从屏幕截图中识别您的IDE,但如果它与其他IDE一样,
默认情况下,您的程序不会在包含的目录中运行
您的源文件main.cpp
和您的数据文件example.txt
。
它将在项目中配置的目录中运行
设置,可能是创建可执行文件的设置。
因此,让我们假装Products/Debug
和std::ifstream theFile("example.txt");
中创建(调试版本)可执行文件
在那里跑。在那种情况下:
example.txt
将失败,因为Products/Debug
中没有名为theFile
的文件。
您需要使用相对路径打开std::ifstream theFile("../../InputFileExample/example.txt");
:
COUNT
countmiss = v1 v2 v3 v4 v5 v6 (MISSING).
或者指定绝对文件名。
答案 2 :(得分:0)
假设您熟悉cpp:
将ifstream
数据的每一行缓冲为std::string
。例如:
std::getline(std::ifstream , std::string )
将std::string
缓冲到std::istringstream
。例如:
std::istringstream (std::string )
将std::istringstream
拆分为您需要的双精度值。例如:
istringstream iss
的
iss >> first >> second >> third
祝你好运!