【发布时间】:2018-04-28 16:18:11
【问题描述】:
我试图在 C 中读取一个字符串直到 EOF,但在输入下一个字符之前对每个字符做出反应。
例如:
用户输入abcd,在每个字符输入后,我将对每个字符进行一些计算。
我尝试以两种不同的方式解决这个问题:
选项 1,使用 getchar():
int d;
char c;
while ((d = getchar()) != EOF) {
c = (char)d;
<<< DO SOME CALCULATIONS ON 'c'>>>
}
选项 2,使用 scanf:
char c;
while (scanf(" %c",&c) != EOF) {
<<< DO SOME CALCULATIONS ON 'c'>>>
}
但是,这两种方法似乎都失败了。看来getchar()和scanf()是获取所有字符,直到遇到'EOF',才进入while循环。
希望对此有所帮助, 谢谢!
【问题讨论】:
-
"但在输入下一个字符之前对每个字符做出反应" 这在标准 C 中绝对不可能。您必须使用第三方或平台相关的 API。
-
@BadMiscuit 但这不会帮助我在输入下一个字符之前应用计算,或者我不明白你
-
@n.m.哇,这太令人惊讶了。我来自其他语言。
-
什么语言?
-
这可能会有所帮助:stackoverflow.com/a/7469410/1679849