私はちょうどC言語を学び始めましたが、かなり遅いです...私は、整数の引数をとり、2倍の値を返すプログラムを書こうとしていました(別名2で、その値をprintfします)。基本的なCプログラミングの質問
私は意図的にscanf関数を使用したくありませんでした。ここでは、私はこれまで、どのようなプログラムは、私は、インデックスの整数を供給したい実行されたときしたがって、基本的...
#include <stdio.h>
int main(int index)
{
if (!(index)) {
printf("No index given");
return 1;
}
a = index*2;
printf("Mult by 2 %d",a);
return 0;
}
をコンパイルされていない持っているものです。だから、cygwinでは、私は./a 10
のようなものを書いて、10はインデックス変数に格納されます。 また、 "No index given"を返し、インデックス値が指定されていない場合は終了するようプログラムする必要があります。
誰かが間違っていることに気をつけますか?
EDIT:
このコードはコンパイル時に1つのエラーを返し、@Jamesによって助けに基づいています。
#include <stdio.h>
int main(int 1, char index)
{
int index, a;
if (!(index)) {
printf("No index given");
return 1;
}
a = index*2;
printf("Mult by 2 %d",a);
return 0;
}
EDIT 2:値がちょうど取られ、エコーバックされたシンプルなプログラムを検討します(下に示すように)
#include <stdio.h>
int main(int argc, char* argv[])
{
int index;
index = argv[1];
printf("Index is %d, ", index);
/*if (!(index)) {
printf("No index given");
return 1;
}
a = index*2;
printf("Mult by 2 %d",a);*/
return 0;
}
このプログラムはコンパイルできません。ああ。
編集3:これは最終的にコンパイルして動作するコードです。皆さんありがとう!
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
if (argc <= 1)
{
printf("No index given");
return 1;
}
int i;
i = atoi(argv[1]); // convert string in argv[1] to integer
int a;
a = i*2;
printf("Mult by 2: %d",a);
return 0;
}
ありがとう! アミット
Jamesがヒントしているように、argsがソートされると、引数は文字列 "10"であることがわかります。したがって、これをさらにintに変換する必要があります。 –
@Amit: 'int 1'は無効です。各パラメータは、関数内の変数です。 '1'は変数ではなく、値です。あなたが[良い初心者Cの本](http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)を持っていることを確認してください。 –
問題は、 '1'はパラメータの名前にすることができず、依然として正しい署名がないことです。コードのその行に 'int main(int argc、char * argv [])'と入力してください。 –