标题:vs2012中printf输出字符串问题?请教各路大神
只看楼主
suifeng1988
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-9
结帖率:50%
 问题点数:0 回复次数:15 
vs2012中printf输出字符串问题?请教各路大神
#include<stdio.h>
#define PRAISE "what a super marvelous name!"
int main(void)
{
    char name[40];
    printf("What's your name?\n");
    scanf_s("%s",name);
    printf("Hello,%s.%s\n",name,PRAISE);
    return 0;
}
其中printf无法输出名字,不知道什么原因
搜索更多相关主题的帖子: void 原因 include return super 
2013-05-21 16:37
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
你这个程序打错了吧

C++菜鸟
2013-05-21 16:44
suifeng1988
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-9
得分:0 
回复 2楼 lzj12530
照着书上打的,就是用vs2012,不知道哪里出问题了
2013-05-21 16:49
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
scanf_s("%s",name);
这句应该是打错了吧,改下吧
scanf("%s",name);

C++菜鸟
2013-05-21 16:51
suifeng1988
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-9
得分:0 
回复 4楼 lzj12530
vs2012中只能打scanf_s,打scanf报错
2013-05-21 16:55
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
那不应该撒

C++菜鸟
2013-05-21 16:56
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
得分:0 
能把显示结果贴出来吗,我这里没装2012

C++菜鸟
2013-05-21 16:57
suifeng1988
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-9
得分:0 
What's your name?
zhang
Hello,.what a super marvelous name!
这就是结果
2013-05-21 17:04
suifeng1988
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2013-5-9
得分:0 
回复 7楼 lzj12530
What's your name?
zhang
Hello,.what a super marvelous name!
这就是结果
2013-05-21 17:05
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
得分:0 
_s 类是针对内存泄露的安全问题,是scanf的高级版本,注意scanf_s函数后必须有数字,表示最多输入多少位(不是字节数),假如没有的话就相当于0,假如输入的字符超出范围,输出时就是空,得不到正确结果。

你应当在scanf_s("%s",name);语句中设置输入多少位的参数的。

Edsger Dijkstra:算法+数据结构=程序
2013-05-21 17:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407642-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.321808 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved