80文字のバッファには、入力時またはキャリッジリターンキーが押されるか、バッファがいっぱいになるまでのいずれか早い方のどちらか早い方で入力します。C - 文字としての標準入力からの読み込み
私はさまざまな方法の多くに見えたが、入力のchar *が80で切断されます、その後押しする必要があります入力しました。..
感謝。
80文字のバッファには、入力時またはキャリッジリターンキーが押されるか、バッファがいっぱいになるまでのいずれか早い方のどちらか早い方で入力します。C - 文字としての標準入力からの読み込み
私はさまざまな方法の多くに見えたが、入力のchar *が80で切断されます、その後押しする必要があります入力しました。..
感謝。
#include<stdio.h>
...
int count=0;
char buffer[81];
int ch=getchar();
while(count<80&&ch!='\n'&&ch!='\r'&&ch!=EOF){
buffer[count]=ch;
count=count+1;
ch=getchar();
}
buffer[count]='\0';
あなたは文字列としてbuffer
を持っていたら、あなたはその次の使用のための入力ストリームを準備するために、入力の行の残りを消化することを確認してください。 「彼らが入力されると、」あなたは本当にあなたがC IOを使用することはできません、文字が必要な場合
scanf("%*[^\n]"); /* Skip to the End of the Line */
scanf("%*1[\n]"); /* Skip One Newline */
#include <stdio>
...
char buf[80];
int i;
for (i = 0; i < sizeof(buf) - 1; i++)
{
int c = getchar();
if ((c == '\n') || (c == EOF))
{
buf[i] = '\0';
break;
}
buf[i] = c;
}
buf[sizeof(buf] - 1] = '\0';
:
これは、次のコード(this documentのscanf
セクションから取られた)によって行うことができます。あなたはそれをUNIXのやり方でしなければなりません。
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
int main() {
char r[81];
int i;
struct termios old,new;
char c;
tcgetattr(0,&old);
new = old;
new.c_lflag&=~ICANON;
tcsetattr(0,TCSANOW,&new);
i = 0;
while (read(0,&c,1) && c!='\n' && i < 80) r[i++] = c;
r[i] = 0;
tcsetattr(0,TCSANOW,&old);
printf("Entered <%s>\n",r);
return 0;
}
ありがとう、私はこの作品がどのように表示されます.. – user884685
ioctl – Dave
はお礼します。 – user884685
ioctlのヘッダーファイルを見つけるには – user884685