我試圖寫一個簡短的程序是:如何將char轉換爲int
#include <stdio.h>
void main()
{
char=a,b,c;
printf("please place 3 numbers:\n");
scanf("%c%c%c", &a,&b,&c);
}
我試圖解決的運動是如何改變字符爲int,所以如果我在寫號碼3,我會得到號碼3打印。 在這一點上,我只得到了價值。 我將不勝感激任何幫助。
我試圖寫一個簡短的程序是:如何將char轉換爲int
#include <stdio.h>
void main()
{
char=a,b,c;
printf("please place 3 numbers:\n");
scanf("%c%c%c", &a,&b,&c);
}
我試圖解決的運動是如何改變字符爲int,所以如果我在寫號碼3,我會得到號碼3打印。 在這一點上,我只得到了價值。 我將不勝感激任何幫助。
答案在某種程度上取決於您對字符集的假設。如果是像ASCII(或真的,這包括按順序數字的任何字符集),你只需要通過字符0
的價值以抵消字符值:
int aValue = a - '0';
我敢肯定,C#雖然提供了更好的方法來做你想做的事情。例如,有關將字符串轉換爲整數值的一些示例,請參見this question。
char a;
如果你想聲明的多個變量:
數字,'a - '0''保證返回預期值,因爲C標準保證它。 –
的所有語法需要一些檢查
你應該知道,你聲明一個變量這樣(在這個例子中一個char)第一同類型的一排你做:
char a, b, c;
如果你想一個值賦給聲明的變量:
a = '3';
現在用printf打印字符(男人的printf是一個必須閱讀,更多的相關信息是的coreutils):
printf("%c", a);
如果你想通過命令行的字符,我建議您使用getchar()
(man getchar)而不是scanf
,因爲如果您更適合嘗試實現,並且不要求您使用scanf
中的語法,我相信您還沒有完全理解它。
你提的問題是關於細節令人難以置信的光,所以這裏有幾個選項:
#include <stdio.h>
int main()
{
char a,b,c;
printf("please place 3 numbers:\n");
scanf("%c%c%c", &a,&b,&c);
printf("Printing ints (auto-promotion): %d %d %d\n", a, b, c);
printf("Printing ints (explicit-promotion): %d %d %d\n", (int)a, (int)b, (int)c);
printf("Printing digits: %d %d %d\n", a-0x30, b-0x30, c-0x30);
return 0;
}
如果輸入爲123
, 我期望的輸出是:
Printing ints (auto-promotion): 49 50 51
Printing ints (explicit-promotion): 49 50 51
Printing digits: 1 2 3
一些我一路上修好的東西。
main
應該返回一個int
,不是無效的。char=a,b,c;
是一個語法錯誤。你的意思是char a,b,c;
main
的末尾增加了一個return 0;
。爲此目的,最好不要使用'0x30' C標準不要求C實現使用ASCII,即使實現了,也沒有解釋的數字代碼的使用是神祕的,我們可以寫'a-'0',而且這是可移植的,清楚(C標準要求數字字符是連續的和升序的。) –
你的問題不是很理解。不過我會盡力幫忙。我認爲你想要的是在char變量中存儲一個整數值。您可以通過使用下面的代碼這樣做:
#include<stdio.h>
void main()
{
char a,b,c;
printf("Enter three numbers:\n");
scanf(" %c %c %c",&a,&b,&c); //notice the spaces between %c
}
或者,如果你想輸入一個字符,打印字符的ASCII值,可以使用下面的代碼:
#include<stdio.h>
#include<conio.h>
void main()
{
char a,b,c;
printf("Enter three characters:\n");
scanf(" %c %c %c",&a,&b,&c);
printf("Entered values: %d %d %d",a,b,c);
getch();
}
這是C#,嚴重? – varocarbas
如果你的問題是關於打印變量的,你應該發佈實際打印變量的代碼。 – abelenky
char = a,b,c?鍵入= VARNAME? –