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");
} 展开
#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");
} 展开
2个回答
展开全部
# 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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询