0
這是一個程序,它逐個字符地讀取數據,直到找到字符數字並將其轉換爲整數。通過讀取字符轉換爲負整數
#include <stdio.h>
int main(void) {
char ch = getchar();
printf("Type some data including a number");
while(ch < '0' || ch > '9') //as long as the character is not a digit.
{
ch = getchar();
}
int num = 0;
while(ch >= '0' && ch <= '9') //as long as we get a digit
{
num = num * 10 + ch - '0'; //convert char digit to integer
ch = getchar();
}
printf("Number is %d\n",num);
}
該程序只能找到正整數。我希望程序能找到負數或浮點數。我如何讓程序做到這一點?我嘗試使用if語句在while循環中尋找一個數字,但那不適合我。
首先,解決您的壓痕。其次,您的第一個「while」跳過非數字字符,需要指示不要跳過「 - 」和「。」。然後你必須處理遇到' - '或''的情況。但不是數字後面,因此不是數字的一部分。 –
我不明白,首先你說你想將char轉換爲數字,然後你說你想讓程序找到負整數? – 0decimal0
通常,在讀取第一個字符之前發出提示。事實上,習慣C會使用:int c;的printf( 「...」); while((c = getchar())!= EOF &&(c < '0' || c >'9'));'(後面的分號應該在它自己的一行上)。擴展到處理+ 3.14E-13是不平凡的;您可能需要某種狀態機(或使用'scanf()'或其親屬之一)。 –