、違いはところで、機能の違いをしている何のscanf(「%s」は)、getlineの
を取得します。 scanf( "%s")、getとgetline
誰でも網羅的なリストとその説明を提供できます。
、違いはところで、機能の違いをしている何のscanf(「%s」は)、getlineの
を取得します。 scanf( "%s")、getとgetline
誰でも網羅的なリストとその説明を提供できます。
scanf("%s", &buffer);
入力に次のトークンを読み込みます(スペース/行の最後/表記がトークンを終了します)。char *buffer
に格納します。たとえば、char buffer[10]
の場合、最大サイズのバッファを使用するフォーマットを使用してください。scanf("%9s", buffer);
を使用して最大9文字を読み取る必要があります。
gets()
は廃止されました。使用しないでください。それはサイズがどんなものであれ、フルラインを読むので、管理者特権を持つプログラムがこのような間違った機能を使用すると、システムに侵入するためにハッカーによって使用される可能性があります。これは一般的なハッカーの戦術であった。代わりにfgets()
を使用してください。バッファのサイズのパラメータが必要です。 fgets(buffer, 10, stdin);
を私の前の例と置き換えてください。行が8文字以下の場合は、\n
がバッファに含まれることに注意してください。
getline()
より具体的には、c++
の機能しかわかりません。
['getline'はC言語で利用できます](http:// man7 .org/linux/man-pages/man3/getline.3.html)。標準ではありませんが、POSIX.1-2008の関数です –
http://stackoverflow.com/questions/314401/how-to-read-a-line-from-the-console-in-c –