C:为什么;输入“;此代码中的键触发器输出?
下面是我在“C编程语言”中练习1-13的代码:C:为什么;输入“;此代码中的键触发器输出?,c,C,下面是我在“C编程语言”中练习1-13的代码: 为了清楚起见,我只在按下“Enter”键时从printf()和putchar()获取输出。CTRL-D只是结束循环和程序。默认情况下,getchar()处于缓冲模式,因此在按下enter键之前,不会向程序提供字符。此问题的副本:回车键释放缓冲区 在输入之前,您的代码无法使用数据。您的代码同时获取所有字符 操作系统负责维护缓冲区(您可以更改操作系统的这一方面)。在c中,任何输出(除非特别设置)都会被缓冲 在发生以下情况之一之前,不会输出任何内容: 调
为了清楚起见,我只在按下“Enter”键时从printf()和putchar()获取输出。CTRL-D只是结束循环和程序。默认情况下,getchar()处于缓冲模式,因此在按下enter键之前,不会向程序提供字符。此问题的副本:回车键释放缓冲区 在输入之前,您的代码无法使用数据。您的代码同时获取所有字符 操作系统负责维护缓冲区(您可以更改操作系统的这一方面)。在c中,任何输出(除非特别设置)都会被缓冲 在发生以下情况之一之前,不会输出任何内容:
fflush()
printf()
注意:除了制表符、空格和换行符之外,您可能还需要其他单词分隔符
建议添加:单引号、双引号、句号、冒号、分号、左括号、左大括号、右括号、右大括号、右勾号。是否使用Windows?它有一个不同的行尾。它使用
\r\n
不,我在Ubuntu 16.04上。
#include <stdio.h>
int main()
{
int c, currentIndex, currentLength;
currentLength = currentIndex = 0;
while ((c = getchar()) != EOF){
if (c == '\t' || c == '\n' || c == ' '){
if (currentLength == 0){
continue;
}
printf("Length of word %d: ||", currentIndex);
for (int i = 0; i < currentLength; i++){
putchar('-');
}
putchar('\n');
currentLength = 0;
++currentIndex;
} else {
++currentLength;
}
}
return 0;
}
how long are these words
Length of word 0: ||---
Length of word 1: ||----
Length of word 2: ||---
Length of word 3: ||-----
Length of word 4: ||-----