[C]获取用户输入字符串------在不知道用户输入长度的时候

来源:互联网 发布:npm安装淘宝镜像 编辑:程序博客网 时间:2024/05/01 05:34
最近在学习压缩算法,在自己上手编程的,突然发现当不知道用户输的字符有多长时,我该怎么正确的获取用户输入的字符,因此就尝试了怎么去实现,没想到自己还真不会,也是因为太久不编程了吧 当然,现在一些在C基础上开发的语言基本都有这些函数,因为我就是纯用C写,并且让用户在小黑窗输入字符串,最关键的是我想自己写一个,即使他可能没什么用,所以那些线程的函数都没有用。写的时候倒是baidu了好多网站,结果发现最后写出来就很短的十几行代码。真是。。。

代码如下:

#include <stdio.h>#include <stdlib.h>#define byte unsigned char#define BYTE sizeof(byte)void RLEString();byte* getFileName();void main(){printf("请输入您压缩的txt文件名:");byte *fileName = getFileName();printf("%s", fileName);free(fileName);}byte *getFileName(){byte *fileName = NULL;int SpaceNeed = 1,flag = 0; //spaceNeed用于统计总共需要多空间,flag表示是否开辟过空间char c;while ((c = getchar()) != '\n'){if (flag == 0){flag = 1;fileName = (byte *)malloc(BYTE * SpaceNeed);}elsefileName = (byte *)realloc(fileName, BYTE * SpaceNeed);fileName[SpaceNeed - 1] = c;SpaceNeed++;}fileName = (byte *)realloc(fileName, BYTE * (SpaceNeed));fileName[SpaceNeed-1] = '\0';return fileName;}


我是个编程新手,目前正在努力学习,望能帮助和我一样的学习者。
希望各路大牛我的不足和提供更好的思路。谢谢。

PS:这博客的格式怎么总是不对,郁闷

0 0