【发布时间】:2015-08-18 08:32:54
【问题描述】:
我正在尝试使用来自stdin 的fgetc() 设置变量。
这是我目前的代码,
#include <stdio.h>
int main(void){
int ch;
int firstNumber,secondNumber;
char str;
printf("Enter two numbers and a string: ");
while((ch=fgetc(stdin))!='\n'){
while(ch != ' '){
firstNumber = ch;
secondNumber = ch;
string = ch;
}
}
printf("%d %d %s",firstNumber,secondNumber,string);
return 0;
}
因此,如果我输入2 2 string(字符之间有空格)
我希望变量 firstNumber 为 2
而secondNumber 是2
而str 是string
【问题讨论】:
-
您正在阅读 ASCII 字符。您必须将字符转换为数字。试试
firstNumber = atoi(ch);您一次读取一个字符,所以这不适用于多位数字。 -
scanf更适合您的任务。 -
while(ch != ' ') 条件将进入无限循环,如果你给出一个非空格字符:(