虽然循环不适用于 fgetc
While loop not working with fgetc
所以这是我正在尝试做的事情:
我要求用户输入一些句子
每当他想停下来他就会按Q(大写字母)
- 然后应该开始下一个处理。
我现在得到的:
- 系统会提示用户输入任意数量的句子
- 但是当他按下 Q 时,控制不会从 while 循环转移到下一条指令。
这是一个 FIFO program.If 你看到任何其他错误都报告 them.Thanks!
代码如下:
#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/stat.h>
void main()
{
int i=0,fd;
char str[500]="",ch;
char *myfifo="/home/rahulp/Desktop/myfifo";
mkfifo(myfifo,0666);
printf("Enter the sentences:");
while((ch=fgetc(stdin))!='Q')
{
printf("ch===%c",ch);
str[i++]=ch;
}
str[i]='[=10=]';
fd=open(myfifo,O_WRONLY);
if(fd<0)
{
printf("Cannot open fifo");
}
else
{
write(fd,str,strlen(str));
}
close(fd);
unlink(myfifo);
}
忽略 mkfifo 正在发生的事情的可能性,这就是你应该如何阅读标准输入:
int ch;
printf("Enter the sentences:");
fflush(stdout);
while ((ch = fgetc(stdin)) != EOF)
{
if (ch == 'Q')
break;
printf("ch=%c\n", ch);
str[i++]=ch;
}
str[i]='[=10=]';
所以这是我正在尝试做的事情:
我要求用户输入一些句子
每当他想停下来他就会按Q(大写字母)
- 然后应该开始下一个处理。
我现在得到的:
- 系统会提示用户输入任意数量的句子
- 但是当他按下 Q 时,控制不会从 while 循环转移到下一条指令。
这是一个 FIFO program.If 你看到任何其他错误都报告 them.Thanks!
代码如下:
#include<stdio.h>
#include<fcntl.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/stat.h>
void main()
{
int i=0,fd;
char str[500]="",ch;
char *myfifo="/home/rahulp/Desktop/myfifo";
mkfifo(myfifo,0666);
printf("Enter the sentences:");
while((ch=fgetc(stdin))!='Q')
{
printf("ch===%c",ch);
str[i++]=ch;
}
str[i]='[=10=]';
fd=open(myfifo,O_WRONLY);
if(fd<0)
{
printf("Cannot open fifo");
}
else
{
write(fd,str,strlen(str));
}
close(fd);
unlink(myfifo);
}
忽略 mkfifo 正在发生的事情的可能性,这就是你应该如何阅读标准输入:
int ch;
printf("Enter the sentences:");
fflush(stdout);
while ((ch = fgetc(stdin)) != EOF)
{
if (ch == 'Q')
break;
printf("ch=%c\n", ch);
str[i++]=ch;
}
str[i]='[=10=]';