我有一個簡單的問題。我想用C編寫一個掃描特定文件行的程序,如果行中唯一的短語是「Atoms」,我希望它停止掃描並報告它所在的行。這是我,而不是編譯,因爲很明顯,我比較的整數指針:循環直到找到特定的字符串
:(當然「string.h中」包括
char dm;
int test;
test = fscanf(inp,"%s", &dm);
while (test != EOF) {
if (dm=="Amit") {
printf("Found \"Atoms\" on line %d", j);
break;
}
j++;
}
文件與已開通inp = fopen(..)
,並檢查以確保其正確打開...
我想,雖然使用不同的方法,並想知道如果它可以工作,而是掃描個體線,我可以掃描整個行作爲例如:
// char tt[200];
//
// fgets(tt, 200, inp);
,並完成類似:
if (tt[] == "Atoms") break;
謝謝! Amit
我似乎無法評論其他人的答案,但我想指出,約翰的建議是不好的。 在fscanf嘗試在那裏存儲數據之前,您必須初始化指向有效內存塊的指針!調用他在下面給出的代碼非常危險,因爲指針可能指向任何地方! – 2011-01-26 22:19:15
謝謝@Kit。我結束了使用strncmp,這就是爲什麼我改變了你的答案。我認爲它對我的情況有用很多,我不知道這個strncmp函數。再次感謝。 – Amit 2011-01-27 02:50:01
我很高興能幫上忙!我很抱歉,我的回答很羅嗦,但我試圖儘可能多地收集那些花絮。 – 2011-01-27 08:33:38