社区
C语言
帖子详情
sscanf(argv[i], "%s %s", aCmd, aCnt); //这句话,他干了什么?
pan2009
2003-10-20 09:07:34
void main(int argc,char *argv[])
{
for (i = 1; i < argc; i++)
{
aCmd[0] = '\0';
aCnt[0] = '\0';
sscanf(argv[i], "%s %s", aCmd, aCnt); //这句话,他干了什么?
.............
}
}
...全文
259
7
打赏
收藏
sscanf(argv[i], "%s %s", aCmd, aCnt); //这句话,他干了什么?
void main(int argc,char *argv[]) { for (i = 1; i < argc; i++) { aCmd[0] = '\0'; aCnt[0] = '\0'; sscanf(argv[i], "%s %s", aCmd, aCnt); //这句话,他干了什么? ............. } }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhyy
2003-10-20
打赏
举报
回复
补充一点,刚刚看了arfi() 的发言,发现自己漏了一些情况:
linux下如果使用引号括起参数的话,如下:文件名 "123 456" "789 012"
那么:argv[1] = "123 456",aCmd="123", aCnt="456"
argv[2] = "789 012",aCmd="789", aCnt="012"
njuhuangmy
2003-10-20
打赏
举报
回复
第一次 赋值 就是 把 argv[1] 给 aCmd, 空的东西给 aCnt
第二次 把 argv[2] 给 aCmd, 空给 aCnt
因为 本身 argv 字符串就是 靠 空格 来 区分的, 而且, argv[1] 和 argv[2] 之间
除了 2 是 1 的后面 之外, 他们 本身 实际 上 并不在一起
所以, sscanf 读入的时候, 把 argv[i] 的内容 都给 aCmd 了
aCnt[0] 还是为 0
下例为证
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char aCmd[50];
char aCnt[50];
for (int i = 1; i < argc; i++)
{
aCmd[0] = '\0';
aCnt[0] = '\0';
sscanf(argv[i], "%s %s", aCmd, aCnt);
puts(aCmd);
if (aCnt[0] == 0)
puts("haha");
}
return 1;
}
zhyy
2003-10-20
打赏
举报
回复
17809958(17809958) 误导楼主!
sscanf(argv[i], "%s %s", aCmd, aCnt); //这句话,他干了什么?
只能将argv[i】的值传给aCmd,aCnt的值永远是初始值!!
原因是:win、dos、linux/unix中总是以空格来区分多个参数的,所以argv[i]值里除了argv[0]可能有,其他的是不会有空格的
arfi
2003-10-20
打赏
举报
回复
我想执行的时候要你输入
可执行文件名 "123 456" "789 012"
的形式吧。
pan2009
2003-10-20
打赏
举报
回复
接着
是不是
argv[1] 赋值给aCmd
argv[2] 赋值给aCnt
argv[2] 赋值给aCmd
argv[3] 赋值给aCnt
17809958
2003-10-20
打赏
举报
回复
argv[0] 赋值给aCmd
argv[1] 赋值给aCnt
Jupin
2003-10-20
打赏
举报
回复
不错
s
scanf
中%s用法
s
scanf
中%s用法原创 2015年01月08日 15:35:065043#include <stdio.h>#include <stdlib.h>#include <string.h>void main(){ char Buffer[512] = {" "};char IP[512]={""};char netmask[512];strcpy(Buff...
linux s
scanf
空格,s
scanf
特殊分隔符(逗号)
一、s
scanf
在直接处理逗号分隔符的时候,会发生错误。程序如下:char *s = "aaa,bbb,ccc,ddd";char a[32],b[32],c[32],d[32];s
scanf
(s, "%s,%s,%s,%s\n", a, b, c, d);printf("[%s][%s][%s][%s]\n", a, b, c, d);结果为:develop:/home/leon/test # ...
s
scanf
中%*s用法
#include #include #include void main() { char Buffer[512] = {" "}; char IP[512]={""}; char netmask[512]; strcpy(Buffer,"/sbin/ifconfig eth0 172.16.129.150 netmask 255.255.255.0 up");
scanf
s
scanf
中的%[^\n]%*c格式
https://blog.csdn.net/q_l_s/article/details/22572777
scanf
s
scanf
语法: #include <stdio.h> int
scanf
( const char *format, ... ); 类似函数有 int
scanf
(const char *format, ...); int f
scanf
(F...
s
scanf
与%n
s
scanf
非常的重要 刚进研究生阶段,发现曾经学习的c语言真的好少好少,很少能够看见
scanf
printf等。。。。。 以后实验的80%以上都是在linux下面 老师让我看看关于一个日志会聚的一个项目模块 发现基本上都是格式化的输入输出 网上就找了一篇来看了看 也就记录在这了。 %n说明: %n 可以将所输出字符串的长度值赋绐一个变量, 见下例: int slen; printf(...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章