【抓狂了】为什么小甲鱼的代码可以我的不行
就是C++课后作业第二十三课动动手示例代码:#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
{
printf("%s\n", argv);
}
return 0;
}
然后编译运行就有了这个:
C:\Users\Administrator\Desktop\C\s1\e23\argc_argv.exe
请问这是怎么回事?
帮个忙吧。 哎呀,小甲鱼的代码跑得飞起,你的却让你抓狂,这绝对是“代码界”的一大悖论!让我们一起来看看这个问题,顺便来点幽默调剂一下。
首先,咱们看一下你的代码:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
{
printf("%s\n", argv);
}
return 0;
}
这里有个小错误:在 `printf` 函数中,你把 `argv` 当作字符串来打印了,实际上,`argv` 是一个字符指针数组(也就是字符串的数组)。所以当你用 `printf("%s\n", argv);` 的时候,它会给你打印出第一个参数的地址,而不是每一个参数的内容。
然后还有个微小的地方,你的 `argv` 应该是 `char *argv[]` 而不是 `char *argv`,这意味着它表示一个字符串数组。
改正后的代码应该是这样的:
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; i < argc; i++)
{
printf("%s\n", argv);// 这里要取出每个参数
}
return 0;
}
这样,每个 `argv` 就能准确地输出每个命令行参数了。就像逛超市一样,一件件清点你的战利品,嘿嘿!
现在再编译运行试试看,希望能带给你一场愉快的“输出盛宴”!如果还是有问题,那就跟我说,我们一起做个“代码侦探”,找出问题的真相!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 貌似还是不行啊 本帖最后由 liuhongrun2022 于 2024-8-15 13:29 编辑
代码好像没什么问题,运行的问题吧。
注意编译运行的时候用命令行,别用你代码编辑器。
附个图,代码就是楼主的那个。(用g++命令编译是因为写习惯了,不影响效果)
编译器的问题,试试VScode或者DEV-C++吧 三体人的智子 发表于 2024-8-15 17:07
编译器的问题,试试VScode或者DEV-C++吧
我用的就是Devc++啊 litengyue 发表于 2024-8-16 09:28
我用的就是Devc++啊
DEV-C++ MinGW? 本帖最后由 jackz007 于 2024-8-16 22:35 编辑
你必须在编译好的程序("argc_argv.exe")所在的子目录("C:\Users\Administrator\Desktop\C\s1\e23\")内开启一个 CMD 窗口,然后,用下面这条命令运行程序:
argc_argv.exe 12345 abcde FishC
看看效果呢 一劳永逸的方法,
又一个秘诀:错的只能是你自己,计算机是不会错的!
遇到不懂得地方,发给月之暗面:
让它用初中生能听懂的语言,给你解释一下。
如果发生错误,也发给它,让它检查,告诉你。 我又试了一遍还是不行啊{:10_266:} jackz007 发表于 2024-8-16 22:32
你必须在编译好的程序("argc_argv.exe")所在的子目录("C:%users\Administrator\Desktop\C\s1\e2 ...
怎么开启啊 本帖最后由 jackz007 于 2024-8-28 22:00 编辑
litengyue 发表于 2024-8-28 11:12
怎么开启啊
按下 Windows 键不松手,再按下 r 键,Windows 会弹出 "运行" 对话框,在 "打开" 的位置后面键盘输入 "cmd" 三个字符(不带引号)然后用鼠标点击 "确定" 按钮,就会弹出一个 CMD 窗口。
在 CMD 窗口内,输入如下命令:
cd C:\Users\Administrator\Desktop\C\s1\e23\
回车,就会来到你编译好的程序所在的路径,这个时候,继续输入如下命令启动程序:
argc_argv 12345 abcde FishC
你应该就可以从屏幕上观察到程序的输出了。
jackz007 发表于 2024-8-28 11:32
按下 Windows 键不松手,再按下 r 键,Windows 会弹出 "运行" 对话框,在 "打开" 的位置后面 ...
成功了!
只是有点麻烦......
页:
[1]