新手的第二个程序
我想做一个程序,就是提示输入字符,按回车以后把输入的字符打印出来,可是我的代码一执行就崩溃了,求解。代码:
#include <stdio.h>
int main(){
char a;
printf("请输入任意字符:");
scanf("%s",&a);
printf("%s",a);
return 0;
} 应该怎样修改呢 nahongyan1997 发表于 2020-8-14 13:06
应该怎样修改呢
这样试试看呗:
#include <stdio.h>
int main(){
char a;
printf("请输入任意字符:");
scanf("%s",&a);
printf("%c",a);
return 0;
} 正确代码如下:#include <stdio.h>
int main(){
char a;
printf("请输入任意字符:");
scanf("%c",&a);
printf("%c",a);
return 0;
} Twilight6 发表于 2020-8-14 13:07
这样试试看呗:
%c 只能打印出一个,我要的是把我输入的所有的东西原封不动的打印,
就像 Python 里 print(input()) 的效果一样。
你怎么跑 c语言 版块来了。 建议写法:#include <stdio.h>
int main() {
printf("请输入任意字符:");
putchar(getchar());
return 0;
} 永恒的蓝色梦想 发表于 2020-8-14 13:13
建议写法:
你这个也是只打印出了一个字符 char的格式化字符是%c
你写的%s是字符串的格式化字符
下面给出常用的类型数据对应的格式化字符
int :%d char : %c float : %f 等等
#include <stdio.h>
int main(){
char a;
printf("请输入任意字符:");
scanf("%c",&a);
printf("%c",a);
return 0;
} nahongyan1997 发表于 2020-8-14 13:12
%c 只能打印出一个,我要的是把我输入的所有的东西原封不动的打印,
就像 Python 里 print(input()) 的 ...
#include<stdio.h>
int main() {
char str;
fgets(str, sizeof(str) / sizeof(char), stdin);
fputs(str, stdout);
return 0;
} nahongyan1997 发表于 2020-8-14 13:14
你这个也是只打印出了一个字符
看 9L,满意请给个最佳哦{:10_297:} 永恒的蓝色梦想 发表于 2020-8-14 13:14
这回直接就结束了都没让我输入 sunrise085 发表于 2020-8-14 13:14
char的格式化字符是%c
你写的%s是字符串的格式化字符
下面给出常用的类型数据对应的格式化字符
我写的是错的,我就是不会瞎写了一段 nahongyan1997 发表于 2020-8-14 13:16
这回直接就结束了都没让我输入
有没有提示不都一样吗……#include<stdio.h>
int main() {
char str;
printf("请输入任意字符:");
fgets(str, sizeof(str) / sizeof(char), stdin);
fputs(str, stdout);
return 0;
} 本帖最后由 nahongyan1997 于 2020-8-14 13:21 编辑
永恒的蓝色梦想 发表于 2020-8-14 13:17
有没有提示不都一样吗……
不是提不提示,是程序直接运行结束了,都出现按任意键结束的提示了
而且你这样我输入的字符串的长度不是被限制住了吗(其实也可以){:10_299:} nahongyan1997 发表于 2020-8-14 13:19
不是提不提示,是程序直接运行结束了,都出现按任意键结束的提示了
那就应该是栈溢出了,改成这样吧:#include<stdio.h>
char str;
int main() {
printf("请输入任意字符:");
fgets(str, sizeof(str) / sizeof(char), stdin);
fputs(str, stdout);
return 0;
} nahongyan1997 发表于 2020-8-14 13:19
不是提不提示,是程序直接运行结束了,都出现按任意键结束的提示了
你难道要自动扩容?不行,这得加钱{:10_256:}
页:
[1]