我对c ++编程比较陌生,而且我在所有这些中遇到了我的第一个主要障碍......
我试图弄清楚如何从记事本上的通用“.txt”文件中读取值/字符。通过这种比较,我想确定是否读取整行,但我似乎无法读取单个一位或两位数字,我得到它使用{'buffername'.getline(变量)读取整行,但是当我尝试将'size'更改为特定数字时,它会给我一个比较错误,说它无效,切换到'int'或'char'(取决于我如何声明变量)。
感谢任何帮助。 感谢
答案 0 :(得分:0)
您需要使用ifstream
来获取值( ref 1 )。
以下内容应该有效。这里我使用std :: string类型的单词,但你可以用其他类型替换它来读取它们(即:int,double等等)。
std::ifstream f("somefile.txt");
std::string word;
std::string line;
if(f >> word){
if(<the comparison>){
line = f.getline();
}
}
答案 1 :(得分:0)
int length = 2;
char * buffer;
ifstream is;
is.open ("test.txt", ios::binary );
// allocate memory:
buffer = new char [length];
// read 2 char
is.read (buffer,length);
//Compare the character and decide
delete[] buffer;
return 0;
答案 2 :(得分:0)
首先,出于性能原因,一次读取1个字节是个坏主意。
我建议这个替代方案:
最好在整行读取,然后使用字符数组。
char variable[1000];
将您的行从文件读入变量。
if (variable[1]=='c') { printf("Byte 2 (remember 0 offset) is compared for the letter c";}
获得2位数#
number=((variable[3]-48)*10)+(variable[4]-48);
你必须减去48因为在ASCII中数字0是48。