c语言程序运行时出现乱码(c语言 字符数组问题)

开始时按1“输入内容”,然后输入完后返回菜单,再按1“继续输入”,会发现前面原来的四个字符不见了,而且后面还多了乱码。请高手指导!能否帮我修改一下,十分感谢!!!!源码如... 开始时按1“输入内容”,然后输入完后返回菜单,再按1“继续输入”,会发现前面原来的四个字符不见了,而且后面还多了乱码。请高手指导! 能否帮我修改一下,十分感谢!!!! 源码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> int ntext; void Menu(); void Entertxt(char text[]); /*输入*/ /*输入模块*/ void Entertxt(char text[]) { char c; int i=ntext; system("cls"); printf("输入@结束输入并返回主菜单\n请输入内容\n"); printf("%s",text); fflush(stdin); while ((c=getchar())!='@') { text[i]=c; i++; } ntext=i; if(c=='@') Menu(); } /*菜单显示模块*/ void Menu(char text[]) { char n; system("cls"); if (ntext==0) { printf("\t\t\t\t----1.输入内容--\n"); printf("\t\t\t\t--选择1 继续输入--\n"); } else { printf("\t\t\t\t----1.继续输入--\n"); printf("\t\t\t\t--选择1 继续输入--\n"); } while (1) { fflush(stdin); n=getchar(); switch (n) { case '1': Entertxt(text);break; default : printf("输入错误!" );break; } } } /*主函数*/ void main() { char text[]={0}; char n; ntext=0; system("cls"); printf("\t\t\t\t--输入1 输入内容--\n"); while (1) { fflush(stdin); n=getchar(); switch (n) { case '1': Entertxt(text);break; default : printf("输入错误!");break; } } } 展开
 我来答
辉晖铎致
2019-11-20 · TA获得超过3611个赞
知道大有可为答主
回答量:3207
采纳率:32%
帮助的人:175万
展开全部
楼主,我改了一下,改完才发现与楼上一下,给你一个参考吧
#include
<stdio.h>
#include
<string.h>
#include
<stdlib.h>
int
ntext=0;
char
text[10]={0};
//将其定义成为
外部变量
,你那样定义是不可以的,大小变成只有一个元素了
void
Menu();
void
Entertxt(char
text[]);
/*输入*/
/*输入模块*/
void
Entertxt(char
text[])
{
char
c;
int
i=ntext;
system("cls");
printf("输入@结束输入并返回主菜单\n请输入内容\n");
printf("%s",text);
fflush(stdin);
while
((c=getchar())!='@')
{
text[i]=c;
i++;
}
ntext=i;
if(c=='@')
Menu();
}
/*菜单显示模块*/
void
Menu()
//这里不需要接收
参数
{
char
n;
system("cls");
if
(ntext==0)
{
printf("\t\t\t\t----1.输入内容--\n");
printf("\t\t\t\t--选择1
继续输入--\n");
}
else
{
printf("\t\t\t\t----1.继续输入--\n");
printf("\t\t\t\t--选择1
继续输入--\n");
}
while
(1)
{
fflush(stdin);
n=getchar();
switch
(n)
{
case
'1':
Entertxt(text);break;
default
:
printf("输入错误!"
);break;
}
}
}
/*主函数*/
void
main()
{
char
n;
system("cls");
printf("\t\t\t\t--输入1
输入内容--\n");
while
(1)
{
fflush(stdin);
n=getchar();
switch
(n)
{
case
'1':
Entertxt(text);break;
default
:
printf("输入错误!");break;
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式