C语言编程求大神编一个程序,要求在控制台上输入字符然后保存并输出

求大神编一个程序,要求在控制台上输入字符然后保存并输出,比如输入1,输出1,输入2,输出12,输入f,输出12f,要求可以输入无数个字符#include<iostream... 求大神编一个程序,要求在控制台上输入字符然后保存并输出,比如输入1,输出1,输入2,输出12,输入f,输出12f,要求可以输入无数个字符
#include<iostream>
using namespace std;
#include <stdio.h>
#include<string.h>
#include<malloc.h>

int sum(int*str, char ch)
{
int i;
static int count = 0;
i = count;
str[i] = ch;
printf("print:%s\n", str);
++count;
return 1;
}

int main()
{
int*str = NULL;
int N;
scanf_s("%d", &N);
str = (int *)malloc(N * sizeof(int));
int i = 0;
char ch;
for (i = 0; i < N; i++)
{
printf("input:");
scanf_s("%c", &ch);
getchar();
sum(str, ch);
}
i++;
if (i == N)
{
N *= 2;
str = (int*)realloc(str, N);
if (str == NULL)
{
return -1;
}
}
system("pause");
}
展开
 我来答
庄政警
2017-07-14 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:883万
展开全部
# include <stdio.h>
#include <malloc.h>
int main()
{
int block=100;         //当录入达到最大时每次扩充的单位
int  total=block;     //total代表最大容量
int count=0;            //count记录已录入的数量
char *str=(char*)malloc(total*sizeof(char)+1);      //str记录起始地址
char * sp=str;                  //sp记录当前所处地址
char c;   //c读取录入的字符
printf("输入:");
while((c=getchar())!=EOF)
{
if(c=='\n')  //读到回车,则终结字符串并输出.但不计数,下次输入可覆盖'\0'
{
*sp=0;
printf("输出:%s\n", str);
printf("输入:");
}
else
{
++count;    //计数,写入并移动指针
*sp++=c;   
}
if(count==total)          //当录入达到最大时扩充
{
total+=block;
str=(char*)realloc(str, total*sizeof(char)+1);  //重新分配空间
sp=str+count;  //定位   
}
}
free(str);
return 0;
}

Polaris北斗
2017-07-14 · TA获得超过3204个赞
知道大有可为答主
回答量:2530
采纳率:79%
帮助的人:820万
展开全部
可以实现,使用动态数组、链表
但无数个字符除非你的计算机内存是无限大的
追问
那具体应该怎么写呢
追答
不难,百度一下单链表、动态数组有很多介绍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式