void main(void)
{
char character;
do {
scanf("%c", &character);
printf("%c", character);
} while (character != EOF);
}
我将按字符处理输入字符,我只允许使用scanf()。但是,while循环不会停止。由于我可能需要使用多行字符串处理输入,因此无法再添加一个条件:character!='\ n'。 有人可以帮我解决这个问题吗?谢谢!
答案 0 :(得分:2)
您的期望不正确。当EOF
在匹配输入项或识别匹配失败之前遇到输入的结尾时,返回 scanf
。在任何情况下都不会修改与未匹配的输入项关联的数据的值。
您忽略了scanf
的返回值,这通常是一件危险的事情,而是测试EOF
是否在与输入项关联的对象中记录$('#submit_c').click(function (e) {
var form = $('#form32_c');
// prevent default action
e.preventDefault();
// send ajax request
$.ajax({
url: '/js-calls/post.php',
type: 'POST',
cache: false,
data: form.serialize(),
success: function(data){
$('#back').hide();
}
});
});
, ,在您的特定情况下,它不能永远做。
答案 1 :(得分:1)
首先应该是int main...
您还需要检查scanf
的返回值 - 请阅读手册页。
考虑到这一点,代码看起来应该是这样的
#include <stdlib.h>
#include <stdio.h>
int main()
{
char character;
while (scanf("%c", &character) == 1) {
if (character != '\n) {
printf("%c", character)
}
}
return EXIT_SUCCESS;
}