编写一个从文件data.in读取数据并存储在数组中的C程序。
( a)查找从键盘输入的名称。如果没有匹配,则返回“未找到”。
( b)列出数组中不重复的所有名称
data.in文件内容:
5
比尔盖茨
史蒂夫·乔布斯
丹尼尔·罗德
比利·卡朋特
史蒂夫·乔布斯
当我输入名称时,即使匹配,也始终找不到输出。这里有什么问题??
发布于 2014-12-14 17:44:35
问题是,从文件data.in读取的fget包括每一行的尾换行符,而stdin中的get不包含尾换行符。这就是为什么没有匹配的原因。
您可以在这里阅读更多关于尾随换行符问题的内容:Removing trailing newline character from fgets() input
而且,正如其他人所指出的,当您找到匹配时,您需要从循环中断开。
发布于 2014-12-14 17:34:33
这条线
if(index == num)
printf("\n%s Not Found in array",name);index == num将永远是true。
https://stackoverflow.com/questions/27471977
复制相似问题