2016-04-08 9 views

答えて

3

scanf("%s", &buffer);入力に次のトークンを読み込みます(スペース/行の最後/表記がトークンを終了します)。char *bufferに格納します。たとえば、char buffer[10]の場合、最大サイズのバッファを使用するフォーマットを使用してください。scanf("%9s", buffer);を使用して最大9文字を読み取る必要があります。

gets()は廃止されました。使用しないでください。それはサイズがどんなものであれ、フルラインを読むので、管理者特権を持つプログラムがこのような間違った機能を使用すると、システムに侵入するためにハッカーによって使用される可能性があります。これは一般的なハッカーの戦術であった。代わりにfgets()を使用してください。バッファのサイズのパラメータが必要です。 fgets(buffer, 10, stdin);を私の前の例と置き換えてください。行が8文字以下の場合は、\nがバッファに含まれることに注意してください。

getline()より具体的には、c++の機能しかわかりません。

+3

['getline'はC言語で利用できます](http:// man7 .org/linux/man-pages/man3/getline.3.html)。標準ではありませんが、POSIX.1-2008の関数です –

関連する問題