2017-01-28 12 views
0

この関数は、端末から行を取得することになっています。しかし、それはしません!私はコードを何度も繰り返してきましたが、問題を正確に特定できませんでした。助けてください!コードがwhileブロックに入っているようではありません。Cの標準入力から行を読み込む機能が期待通りに動作しない

int getline(char line[]) { 
int i = 0 ; 
int c ; 
while(((c=getchar()) != EOF) && (c =! '\n')) { 
    line[i++] = c ; 
} 
line[i] = '\0' ; 
return i ; 
} 

答えて

3

は、まあこれはあなたが違いに気付くください

while(((c=getchar()) != EOF) && (c != '\n')) 

でなければなりません

while(((c=getchar()) != EOF) && (c =! '\n')) 

間違っていますか? !=は(正しい)比較であり、=!は完全に異なっています(つまり、'\n'を否定してcに割り当てます)。これは間違っていました。だから、詳細に注意してください:)

+0

ああ...私はそのようなばかのように感じる....私は恥ずかしいです..ありがとう! – user1720897

+0

このような間違いは悪い日に起こります..それを簡単にして、2回目にしないでください。 – artm

関連する問題