【发布时间】:2019-10-26 21:00:41
【问题描述】:
我的程序没有看到 while 循环,我无法将搅拌输入到 c 变量中
我想输入一个字符串。如果此字符串中的 char 将是一个数字,他将保持为数字,如果他不是数字,他将更改为 char 'num' 在 ascii 代码中更远的位置。
#include <stdio.h>
#include <ctype.h>
int main()
{
int num;
char c;
printf("Enter number: \n");
scanf("%d", &num);
printf("Enter a string : \n");
while ((c = getchar()) != '\n')
{
if (isdigit(c))
{
putchar(c);
}
else
{
putchar(c + num);
}
}
return 0;
}
【问题讨论】:
-
首先,
getchar函数返回一个int。当您与EOF进行比较时,这一点很重要,您总是应该这样做。其次,请学习如何使用调试器逐句执行代码,同时监控变量及其值。如果您这样做,您可能会惊讶地看到您阅读的第一个字符。或者可能不是,如果您考虑一下您可能按下以结束整数输入的Enter键,以及它可能会添加到输入缓冲区中的字符。
标签: c while-loop getchar