比较输入值和从文件读取值的最佳方法 我对C++编程比较新,我在所有这些方面都碰到了我的第一个主要障碍。

比较输入值和从文件读取值的最佳方法 我对C++编程比较新,我在所有这些方面都碰到了我的第一个主要障碍。,c++,C++,我试图找出如何从记事本上的通用“.txt”文件中读取值/字符。通过这个比较,我想确定是否读取整行,但我似乎不能只读取一个或两个数字,我使用{'buffername'.getline(variable,size)}读取整行但是,当我试图将“size”更改为一个特定的数字时,它会给我一个比较错误,说明切换到“int”或“char”是无效的(取决于我如何声明变量) 感谢您的帮助。 谢谢您需要使用ifstream来获取值() 像下面这样的方法应该可以奏效。在这里,我使用std::string类型的单词,

我试图找出如何从记事本上的通用“.txt”文件中读取值/字符。通过这个比较,我想确定是否读取整行,但我似乎不能只读取一个或两个数字,我使用{'buffername'.getline(variable,size)}读取整行但是,当我试图将“size”更改为一个特定的数字时,它会给我一个比较错误,说明切换到“int”或“char”是无效的(取决于我如何声明变量)

感谢您的帮助。
谢谢

您需要使用
ifstream
来获取值()

像下面这样的方法应该可以奏效。在这里,我使用std::string类型的单词,但您可以用其他类型来替换它来读取它们(例如:int、double等)

std::ifstream f(“somefile.txt”);
字符串字;
std::字符串行;
如果(f>>word){
if(){
line=f.getline();
}
}

首先,出于性能原因,一次读取1个字节是个坏主意

我建议这样做:

您最好阅读整行,然后使用字符数组

char variable[1000];
将文件中的行读入变量

if (variable[1]=='c') { printf("Byte 2 (remember 0 offset) is compared for the letter c";}
得到一个2位数#


您必须减去48,因为在ASCII中,数字0是48。

如果您不显示您的程序,最好是完整的,以及您正在使用的示例数据,则只有带水晶球的向导可以帮助您。好的,对于我正在尝试使用的代码块,这看起来是一个很好的解决方案。我将试一试,看看这个程序的头痛最终会不会消失。谢谢你的帮助。
char variable[1000];
if (variable[1]=='c') { printf("Byte 2 (remember 0 offset) is compared for the letter c";}
number=((variable[3]-48)*10)+(variable[4]-48);