为什么程序之只能运行一般,就自动退出

u013163178 2013-12-31 11:09:27
// character.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "stdio.h"
int main()
{
char str1;
char str2[10];
puts("Please enter a character ");
str1=getchar(); //获取字符
putchar(str1);//输出获得的字符
puts("Please enter string");// 提示输入字符串
gets_s(str2,10); //从输入流中抓取字符串
puts(str2); //输出获得的字符串
return 0;
}

这是提示,我觉得返回值有问题,不知道什么问题
“character.exe”(Win32): 已加载“C:\Users\I love u\Desktop\新建文件夹\character\Debug\character.exe”。已加载符号。
“character.exe”(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。已加载符号。
“character.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel32.dll”。已加载符号。
“character.exe”(Win32): 已加载“C:\Windows\SysWOW64\KernelBase.dll”。已加载符号。
“character.exe”(Win32): 已加载“C:\Windows\SysWOW64\msvcr110d.dll”。已加载符号。
线程 0x1084 已退出,返回值为 -1073741510 (0xc000013a)。
程序“[1120] character.exe”已退出,返回值为 -1073741510 (0xc000013a)。
...全文
347 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2013-12-31
  • 打赏
  • 举报
回复
引用 7 楼 zhuobattle 的回复:
你要消耗一个回车,否则下面的输入自然自动结束了。代码如上,添加一个getchar()
按照你的成功了,我动了,谢谢你
「已注销」 2013-12-31
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。
懂了,解决了。谢谢你
「已注销」 2013-12-31
  • 打赏
  • 举报
回复
引用 6 楼 zhuobattle 的回复:

int main()
{
char str1;
char str2[10];
puts("Please enter a character ");
str1=getchar(); //获取字符
getchar();//消耗一个回车,注意添加这行。
putchar(str1);//输出获得的字符
puts("Please enter string");// 提示输入字符串
gets_s(str2,10); //从输入流中抓取字符串
puts(str2); //输出获得的字符串
return 0;
}
我明白了,可是为什么我的输入的字符会输出2次呢,那个X我只输出可一次
赵4老师 2013-12-31
  • 打赏
  • 举报
回复
在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。
zhuobattle 2013-12-31
  • 打赏
  • 举报
回复
你要消耗一个回车,否则下面的输入自然自动结束了。代码如上,添加一个getchar()
zhuobattle 2013-12-31
  • 打赏
  • 举报
回复

int main()
{
	char str1;
	char str2[10];
	puts("Please enter a character ");
	str1=getchar();        //获取字符
	getchar();//消耗一个回车,注意添加这行。
	putchar(str1);//输出获得的字符
	puts("Please enter string");//        提示输入字符串
	gets_s(str2,10);                 //从输入流中抓取字符串
	puts(str2);               //输出获得的字符串
	return 0;
}
zhuobattle 2013-12-31
  • 打赏
  • 举报
回复
这个程序实际上不是crash
derekrose 2013-12-31
  • 打赏
  • 举报
回复
引用 3 楼 u013163178 的回复:
引用 1 楼 zhao4zhong1 的回复:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
在调试的时候就出现这个提示输入
那你就输入啊 继续跟踪
「已注销」 2013-12-31
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
在调试的时候就出现这个提示输入
u012997273 2013-12-31
  • 打赏
  • 举报
回复
char str2[10]; gets_s(str2,10);
赵4老师 2013-12-31
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

70,026

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧