应该是一直循环的函数,输入之后就没后续了
#include<stdio.h>int main()
{
int i,j;
printf("输入出生日期(如:20060101):\n");
while(scanf("%d",&i)!='w');
{
printf("%d\n",j);
printf("%d",i);
}
return 0;
} 您的代码存在一些问题,首先在包含头文件方面,要写成#include <stdio.h>,并且没有包含stdlib.h头文件。另外,在循环中,while条件语句应该是`scanf("%d",&i)!=EOF`,而不是`scanf("%d",&i)!='w'`。此外,您的代码中没有对变量j进行赋值操作,所以会导致输出未定义的值。下面是更正后的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j;
printf("输入出生日期(如:20060101):\n");
while (scanf("%d", &i) != EOF)
{
j = i;
printf("%d\n", j);
printf("%d", i);
}
return 0;
}
这样修改后,程序会一直等待用户输入,直到输入Ctrl+D(在Linux系统中)或Ctrl+Z(在Windows系统中)来结束输入,然后按照输入的顺序将用户输入的数字输出两次。
希望能够帮助到您!如果有其他问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 本帖最后由 jackz007 于 2024-4-11 16:23 编辑
while(scanf("%d",&i)!='w'); // 语句末尾不能带分号,会脱钩后续的循环体;scanf() 返回整数,不可能返回字符 'w'
试试这个代码,键入 'w' 字符结束输入
#include<stdio.h>
int main(void)
{
char s ;
int i , n ;
printf("输入出生日期(如:20060101):\n") ;
for(i = 0 ; (s = getchar()) != 'w' ;) {
if(s == '\n') {
s = '\0' ;
sscanf(s , "%d" , & n) ;
printf("%d\n" , n) ;
i = 0 ;
} else if(s >= '0' && s <= '9') {
i ++ ;
}
}
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
输入出生日期(如:20060101):
20060101
20060101
20080907
20080907
w
D:\\C>
页:
[1]