我正在尝试创建一个从.ini文件中读取数据的C程序。数据被读入名为buffer的变量中。 .ini文件中的数据如下所示:
[key]
title= A, H, D, F
我的程序如下:
LPCSTR ini = "C:\\conf.ini";
char var[100];
GetPrivateProfileString("key", "title", 0, var, 100, ini);
char* buffer = strtok(var, ",");
printf("The complete line is %s", var);
buffer=strtok(NULL, ",");
printf(buffer);
while((buffer= strtok(NULL, ","))!=NULL)
printf(buffer);
输出看起来像这样:
The complete line is A, H, D, F
A
H
D
F
现在我要做的就是将'缓冲区'中收到的每个字母与字符'A'进行比较,如果是真,则打印是,否则打印否。我尝试使用strcmp进行比较,但.exe文件已停止运行
if (strcmp(buffer, "A")==0)
printf("Hello")
答案 0 :(得分:1)
从您的输入格式开始,存在空格,您不会将其视为分隔符的prt。因此,预期这些空格将出现在指向bu '10.07AM'
的字符串中。你可以做到
buffer
" ,"
等等。那就是说,
if (strcmp(buffer, " A")==0)
是一种糟糕的风格。使用printf(buffer);
ot更喜欢puts(buffer)
。printf("%s", buffer)
的{{1}}返回值。