[C]獲取用戶輸入字符串------在不知道用戶輸入長度的時候

	最近在學習壓縮算法,在自己上手編程的,突然發現當不知道用戶輸的字符有多長時,我該怎麼正確的獲取用戶輸入的字符,因此就嘗試了怎麼去實現,沒想到自己還真不會,也是因爲太久不編程了吧 
	當然,現在一些在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);
		}
		else
			fileName = (byte *)realloc(fileName, BYTE * SpaceNeed);
		fileName[SpaceNeed - 1] = c;
		SpaceNeed++;
	}
	fileName = (byte *)realloc(fileName, BYTE * (SpaceNeed));
	fileName[SpaceNeed-1] = '\0';
	return fileName;

}


我是個編程新手,目前正在努力學習,望能幫助和我一樣的學習者。
希望各路大牛我的不足和提供更好的思路。謝謝。

PS:這博客的格式怎麼總是不對,鬱悶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章