私は短いプログラムを書こうとしています:
#include <stdio.h>
void main()
{
char=a,b,c;
printf("please place 3 numbers:\n");
scanf("%c%c%c", &a,&b,&c);
}
私が解決しようとしている演習は、char を int に変更する方法です。したがって、数値 3 を書き込むと、数値 3 が印刷されます。この時点では、値のみを取得しています。助けていただければ幸いです。
答えは、文字セットについて何を想定できるかによって多少異なります。それがASCII(または実際には、数字を順番に含む任意の文字セット)のようなものである場合、文字の値を文字の値だけオフセットする必要があります0
:
int aValue = a - '0';
ただし、C# は、あなたがやろうとしていることを行うためのより良い方法を提供していると確信しています。たとえば、文字列を整数値に変換する例については、この質問を参照してください。
まず、構文を確認する必要があります
この方法で変数を宣言することを知っておく必要があります (この例では char):
char a;
行で同じ型の複数の変数を宣言したい場合は、次のようにします。
char a, b, c;
宣言された変数に値を代入する場合:
a = '3';
次に、printf を使用して char を出力します (man printf は必読です。詳細情報は coreutils にあります)。
printf("%c", a);
コマンドラインから文字を取得したい場合は、getchar()
代わりに (man getchar)を使用scanf
することをお勧めします。達成しようとしているものにより適していて、構文を使用する必要がないscanf
場合まだ完全には理解していません。
あなたの質問はよく理解できません。それでも私は助けようとします。あなたが望むのは、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();
}
あなたの質問は詳細に非常に軽いので、ここにいくつかのオプションがあります:
#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
void ではなく、を返す必要があります。char=a,b,c;
構文エラーです。あなたが意味したchar a,b,c;
return 0;
の末尾にa を追加しましたmain
。