c++ - 从包含多行的文本文件中读入 float 变量的代码

标签 c++ text

在 C++ 中,我如何读取包含 3 个不是字符串类型的浮点变量的文本文件,而是作为程序重用的浮点变量类型。

我尝试使用 fscanf 函数,结果只读取文件的第一行。我如何告诉它使用\n 行尾等分隔符并让它继续处理文件的其余部分?

谢谢。

#include <cstdlib>
#include <math.h> //Include math functions
#include <iostream> //Stream to allow input/output
#include <fstream> //Stream class to read/write files

using namespace std;
string line = "0.0";
char str [80];
float f;
FILE * pFile;

int main () { 
    pFile = fopen ("C:\\Users\\Brian\\Documents\\NetBeansProjects\\CppApplication_2\\init_temps.txt","r"‌​);
    fscanf (pFile, "%f", &f);
    cout << f;
    return 0;
}

最佳答案

根据您的代码,您似乎只读取了第一个数字。你应该迭代 3 次:

int i;

for(i = 0; i < 3; i++)
{
    fscanf(pFile, "%f", &f);
    cout << f << endl;
}

或者更好的方法是检查 fscanf() 的返回值,以便更好地决定您是否已阅读所有内容。

另一方面,你应该学会使用局部变量而不是全局变量,除非真的有必要。

希望这对您有所帮助。

关于c++ - 从包含多行的文本文件中读入 float 变量的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16951783/

相关文章:

C++成员函数模板使用template

c++ - 函数指针(类内)

java - 检测 `char[]` 中的换行符

python - 文本挖掘:确定动词指的是哪个名词?

html - 透明框上的不透明文本

c++ - 出现段错误的最小 C/C++ 程序?

c++ - 乘法 : uint vs float

c++ - 可移植浮点变量模板

regex - 将字符串保留到 R 中模式第一次出现的位置

html - 如何强制输入框在所有设备/浏览器中显示相同的内容?