这是我上一个问题的延续, In C++, how to read the contents of a text file, and put it in another text file?
在读取文件的内容并将其存储在向量中之后,我想将文件的内容与0之类的整数进行比较,
假设我的input.txt文件的内容是0100 .. 所以,在打开第二个文件后,这就是我给出的,
string a = inputLines[0] ;
cout << a[0] << '\n';
if (a[0] == "0")
{
cout << "Match" << '\n';
}
但是,我得到的错误是指向整数比较的指针,如何避免这个错误?
答案 0 :(得分:4)
a[0]
是char
,但"0"
是const char[2]
。您想要使用字符文字'0'
代替(不同的引号)。
if (a[0] == '0')
答案 1 :(得分:0)
a [0]具有类型char
而“0”是字符串文字,它在内存中表示为两个字符的数组
['0']['\0']
并转换为指向表达式
中第一个元素的指针a[0] == "0"
因此编译器会发出错误,因为操作数的类型不会出现问题。 您需要将字符与
的字符文字进行比较if(a [0] =='0')
虽然你甚至可以写:)作为
if(a [0] ==“0”[0])
因为"0"[0]
是一个角色。甚至以下方式
if(a [0] == *“0”)
但当然,使用简单的字符文字“0”要好得多。