Cで%[^\n]
は何を意味しますか? 文字列変数に複数の単語を入力するためにscanf
を使用するプログラムで見ました。私はscanfが複数の単語を取ることができないことを知ったので、私は理解しません。Cでは%[^ n]は何を意味しますか?
#include <stdio.h>
#include <stdlib.h>
int main() {
char line[100];
scanf("%[^\n]",line);
printf("Hello,World\n");
printf("%s",line);
return 0;
}
['scanf()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/scanf.html)のドキュメントで_scan set_と呼ばれています など –
'scanf("%[^ \ n] "、行);の一般的な問題' 1)入力を制限しないので、100文字以上の入力テキストが 'line []'バッファをオーバーフローさせることがあります。 2)見つかった_first_文字が ''\ n' 'の場合、_nothing_は' line [] 'について変更され、関数は0を返します。3)' \ n'は 'stdin'のままです。 'scanf("%[^ \ n] "、行);' fgets() 'を調査して使用しないでください。 – chux
あなたの知識を共有してくれてありがとう:) @chux –