我刚开始学习C而且它的速度很慢......我想写一个程序,它接受一个整数参数并返回它的加倍值(也就是取整数,乘以2,printf那个值).
我故意不想使用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;
}
Run Code Online (Sandbox Code Playgroud)
所以基本上当程序执行时我想提供索引整数.所以,在cygwin中,我会写类似的东西./a 10,10会被存储到索引变量中.另外,我想编程返回"No index given"并在没有提供索引值的情况下退出...
有人在乎帮助我做错了吗?
编辑:
此代码在编译时返回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;
}
Run Code Online (Sandbox Code Playgroud)
编辑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;
}
Run Code Online (Sandbox Code Playgroud)
这个程序无法编译......任何想法?!?啊.
编辑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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!阿米特
该main函数只有两个保证工作原型:一个不带参数(int main(void)),另一个带两个参数,看起来像这样:
int main(int argc, char* argv[])
Run Code Online (Sandbox Code Playgroud)
argc是传递给程序的参数的数量,并且argv是包含传递给程序的参数的数组.
如果要在运行程序时传递参数(而不是提示用户输入),则需要执行此操作
main参数的形式,argc大于一(argv[0]程序名称,或应该是),argv[1]从它的字符串表示为一个整数,使用strtol,sscanf或一些其它库函数(避免atoi:它不提供可用错误报告),| 归档时间: |
|
| 查看次数: |
881 次 |
| 最近记录: |