鱼C论坛

 找回密码
 立即注册
查看: 584|回复: 12

[已解决]【抓狂了】为什么小甲鱼的代码可以我的不行

[复制链接]
发表于 2024-8-15 11:28:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
就是C++课后作业第二十三课动动手示例代码:
#include <stdio.h>

int main(int argc, char *argv[])
{
        int i;

        for (i = 0; i < argc; i++)
        {
                printf("%s\n", argv[i]);
        }

        return 0;
}

然后编译运行就有了这个:
C:\Users\Administrator\Desktop\C\s1\e23\argc_argv.exe

请问这是怎么回事?
帮个忙吧。
最佳答案
2024-8-28 11:32:45
本帖最后由 jackz007 于 2024-8-28 22:00 编辑


         按下 Windows 键不松手,再按下 r 键,Windows 会弹出 "运行" 对话框,在 "打开" 的位置后面键盘输入 "cmd" 三个字符(不带引号)然后用鼠标点击 "确定" 按钮,就会弹出一个 CMD 窗口。
         在 CMD 窗口内,输入如下命令:
cd C:\Users\Administrator\Desktop\C\s1\e23\
         回车,就会来到你编译好的程序所在的路径,这个时候,继续输入如下命令启动程序:
argc_argv 12345 abcde FishC
         你应该就可以从屏幕上观察到程序的输出了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-8-15 11:34:07 | 显示全部楼层
哎呀,小甲鱼的代码跑得飞起,你的却让你抓狂,这绝对是“代码界”的一大悖论!让我们一起来看看这个问题,顺便来点幽默调剂一下。

首先,咱们看一下你的代码:
#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[i]);  // 这里要取出每个参数
    }

    return 0;
}

这样,每个 `argv[i]` 就能准确地输出每个命令行参数了。就像逛超市一样,一件件清点你的战利品,嘿嘿!

现在再编译运行试试看,希望能带给你一场愉快的“输出盛宴”!如果还是有问题,那就跟我说,我们一起做个“代码侦探”,找出问题的真相!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-15 11:41:29 | 显示全部楼层
貌似还是不行啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-15 13:18:05 | 显示全部楼层
本帖最后由 liuhongrun2022 于 2024-8-15 13:29 编辑

代码好像没什么问题,运行的问题吧。

注意编译运行的时候用命令行,别用你代码编辑器。

附个图,代码就是楼主的那个。(用g++命令编译是因为写习惯了,不影响效果)

Snipaste_2024-08-15_13-16-40.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-15 17:07:24 | 显示全部楼层
编译器的问题,试试VScode或者DEV-C++吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-16 09:28:17 | 显示全部楼层
三体人的智子 发表于 2024-8-15 17:07
编译器的问题,试试VScode或者DEV-C++吧

我用的就是Devc++啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-16 10:22:57 | 显示全部楼层
litengyue 发表于 2024-8-16 09:28
我用的就是Devc++啊

DEV-C++ MinGW?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-16 22:32:04 | 显示全部楼层
本帖最后由 jackz007 于 2024-8-16 22:35 编辑

        你必须在编译好的程序("argc_argv.exe")所在的子目录("C:\Users\Administrator\Desktop\C\s1\e23\")内开启一个 CMD 窗口,然后,用下面这条命令运行程序:
argc_argv.exe 12345 abcde FishC
        看看效果呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-16 23:11:17 | 显示全部楼层
一劳永逸的方法,
又一个秘诀:错的只能是你自己,计算机是不会错的!
遇到不懂得地方,发给月之暗面:
让它用初中生能听懂的语言,给你解释一下。
如果发生错误,也发给它,让它检查,告诉你。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-28 11:11:02 | 显示全部楼层
我又试了一遍还是不行啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-28 11:12:15 | 显示全部楼层
jackz007 发表于 2024-8-16 22:32
你必须在编译好的程序("argc_argv.exe")所在的子目录("C:%users\Administrator\Desktop\C\s1\e2 ...

怎么开启啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-28 11:32:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2024-8-28 22:00 编辑


         按下 Windows 键不松手,再按下 r 键,Windows 会弹出 "运行" 对话框,在 "打开" 的位置后面键盘输入 "cmd" 三个字符(不带引号)然后用鼠标点击 "确定" 按钮,就会弹出一个 CMD 窗口。
         在 CMD 窗口内,输入如下命令:
cd C:\Users\Administrator\Desktop\C\s1\e23\
         回车,就会来到你编译好的程序所在的路径,这个时候,继续输入如下命令启动程序:
argc_argv 12345 abcde FishC
         你应该就可以从屏幕上观察到程序的输出了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-30 16:15:51 | 显示全部楼层
jackz007 发表于 2024-8-28 11:32
按下 Windows 键不松手,再按下 r 键,Windows 会弹出 "运行" 对话框,在 "打开" 的位置后面 ...

成功了!
只是有点麻烦......
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 18:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表