FILE *t;
t = fopen(argv[8], "r");
fgets(tmp, 2048, t);
我在每一行读到的东西都是这样的“l 23 23”字母和一些数字(int或float),取决于天气“l”是“a”“b”或“c”。
我已尝试但无法将tmp [0]与字母进行比较。
tmp[0] =="t"
我知道文件中肯定存在“t”,但总是给出false
。
如何比较它并提取后面的数字?
PS:根据tmp[0]
的值,我知道每行的数量和类型数量。
答案 0 :(得分:1)
如果你想比较一个这样的字符,请使用't'
,而不是"t"
(单引号,而不是双引号)。
答案 1 :(得分:1)
如果您想将tmp
中的第一个字符与字符'x'
进行比较,请使用:
if (tmp[0] == 'x')
{
...
}
如果您想将tmp
中的整个字符串与字符串"xyz"
进行比较,请使用:
if (strcmp(tmp,"xyz") == 0)
{
...
}
幕后:
tmp[0] == "t"
,您实际上是在尝试将单个字符(通常为8位数据)与内存地址(通常为32或64位数据,具体取决于您的系统)进行比较。