C/C++如何整行讀入字串
在寫程式碼的過程中,經常要一行一行的讀入字串進行處理,這裡我總結了一些方法,供大家參考。
回到頂部方法一:scanf()讀入char[]
使用方法:
char str[1024]; scanf("%[^\n]",&str); getchar();
說明:在scanf函式中,可以使用%c來讀取一個字元,使用%s讀取一個字串, 但是讀取字串時不忽略空格,讀字串時忽略開始的空格,並且讀到空格為止,因此只能讀取一個單詞,而不是整行字串。
其實scanf函式也可完成這樣的功能,而且還更強大。這裡主要介紹一個引數,%[ ],這個引數的意義是讀入一個字元集合。[ ]是個集合的標誌,因此%[ ]特指讀入此集合所限定的那些字元,比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字元便停止。如果集合的第一個字元是"^",這說明讀取不在"^"後面集合的字元,既遇到"^"後面集合的字元便停止。注意此時讀入的字串是可以含有空格的,而且會把開頭的空格也讀進來
注意:如果要迴圈的多次從螢幕上讀取一行的話,就要在讀取一行後,在用%c讀取一個字元,將輸入緩衝區中的換行符給讀出來。否則的話,在下一次讀取一行的時候,第一個就遇到'\n',匹配不成功就直接返回了。這裡可以用scanf()或者getchar()函式讀取換行符。
回到頂部方法二:getchar()讀入char[]
使用方法:
char str[1024]; int i=0; while((str[i]=getchar())!='\n') i++;
getchar();
說明:這樣一個一個讀也可以,也會把開頭的空格讀進來。最後也需要考慮換行符,使用getchar()讀出來。
回到頂部方法三:gets()讀入char[]
使用方法:
char str[1024]; gets(str);
說明:感覺這個就是多個getchar的集合函式,很好用。功能是從標準輸入鍵盤上讀入一個完整的行(從標準輸入讀,一直讀到遇到換行符),把讀到的內容存入括號中指定的字元數組裡,並用空字元'\0'取代行尾的換行符'\n'。讀入時不需要考慮換行符。
回到頂部方法四:getline()讀入string或char[]
使用方法:
string str; getline(cin,str);//讀入string char str2[1024]; cin.getline(str2,1024);//讀入char陣列
說明:這是比較常用的方法,cin.getline第三個引數表示間隔符,預設為換行符'\n'。讀入不需要考慮最後的換行符。
回到頂部方法五:get()讀入char[]
使用方法:
char str3[1024]; cin.get(str3,1024);//讀入char陣列
說明:get函式讀入時需要考慮最後的換行符,也就是說,如果用get讀入多行資料,要把'\n'另外讀出來,一般使用cin.get(str,1024).get();來讀入多組資料。
本文版權歸作者AlvinZH和部落格園所有,歡迎轉載和商用,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利.
相關推薦
C/C++如何整行讀入字串
在寫程式碼的過程中,經常要一行一行的讀入字串進行處理,這裡我總結了一些方法,供大家參考。 回到頂部 方法一:scanf()讀入char[] 使用方法: char str[1024]; scanf("%[^\n]",&str); getchar(); 說明:在scanf函式中,可以使用%c來讀
C語言---關於scanf讀入字串的一些問題
scanf是C語言中常用的標準輸入輸出函式,它的常規用法是scanf(“輸入格式”,輸入地址),scanf從輸入緩衝區取入資料按照指定的“輸入格式”儲存到指定的“輸入地址”。 但是有一類問題通常令人頭疼,那就是字串的讀入,此處僅僅討論使用scanf讀取字串的一些
c++讀入字串:cin和getline的比較
c++輸入字串到string類可以用getline函式,第一個引數是cin,第二個引數是string類的變數,第三個引數是結束標誌。 該函式不會讀入結束標誌,而是跳過。 當cin>>從緩衝區中讀取資料時,若緩衝區中第一個字元是空格、tab或換行這些分隔符時,c
c/c++ 從鍵盤流中讀入字串的函式:gets(str);
****本文摘自西電論壇 標頭檔案:#include <stdio.h> gets()函式用於從緩衝區中讀取字串,其原型如下: char *gets(char *string);gets()函式從流中讀取字串,直到出現換行符或讀到檔案尾為止,最後加上NUL
c語言從stdin讀入
程式碼 #include<stdio.h> #include<stdlib.h> int main(int argc, char* argv[]) { char *
【總結】c++輸入時如何讀入空格
cin和scanf輸入的時候遇到空格,回車,換行符都是代表輸入結束的,是沒辦法記錄下輸入的空格的,我用的是下面兩種方法~ 功能 程式碼實現 C++ 輸入string型字串時如
C語言檔案的讀入與寫入
學了一學期的C語言,還不怎麼會使用指標,檔案的讀入和寫入也不能很順利的寫出來,說起來好慚愧。碰巧今天朋友讓我幫他編寫一個C語言程式,對他數模要用到的大量資料求平均值(每天不同時刻對某一物理量進行檢測,持續幾十天,求那些時刻測得的物理量的平均值)。程式碼很簡單,關鍵是要掌握怎樣
fgets、gets、scanf函式讀入字串比較
首先,說說這個函式的使用方法。程式碼如下: char str[10]; fgets(str, 10, stdin);//stdin表示從輸入流中讀入,也可以是其他檔案指標。 gets(str); scanf("%s", str);其中fgets函式是安全的,gets和sc
Java練習題_Map 利用Map,完成下面的功能: 從命令行讀入一個字符串,表示一個年份,輸出該年的世界杯冠軍是哪支球隊。
equals 一次 can 世界 java練習 等於 system entry 網上 從命令行讀入一個字符串,表示一個年份,輸出該年的世界杯冠軍是哪支球隊。 歷屆世界杯冠軍 屆數 舉辦年份 舉辦地點 冠軍 第一屆 1930年 烏拉圭 烏拉圭 第二屆 1934年 意大利 意
scanf讀入字串與讀入字元的區別
今天下午比賽時候有道題用c++輸入輸出是超時的,所以準備換上c試試,發現幾個小問題: 1、使用scanf("%c", &a)讀取a(a是char型別),如果讀取之前有換行符或者空格,那麼a就會把之前的換行符或者空格讀取到,解決方法就是這之前先getchar()一下。
C++讀入一行字串
cin.getline(char * str, int size_t, char delim) 標頭檔案: #include<iostream> 引數1:字元陣列 引數2:讀入字串長度 引數3:終止符 示例: char str[105]; cin.ge
C語言字串讀入函式筆記
gets(str)函式和scanf("%s",str)區別: 轉自:https://zhidao.baidu.com/question/290403568.html 二者都是從終端讀入字串。 功能為: 1、 gets功能為讀入一行,並將換行符轉換為字串結束符。 2、 scanf(
c/c++ 字元和字串讀入小結(gechar cin getline gets)
文章來源:http://www.cnblogs.com/StoneXie/p/9603266.html c/c++ 字元和字串讀入小結(gechar cin getline gets) by slj getchar: 逐個字元讀入,可以讀入一切字元,包括空格符和回車符。這個函式很通用
C++檔案的讀寫和對多行多個字串的處理
C++讀寫檔案中的字串 今天幫人做了個簡單的作業,沒想到花時間最多的不是演算法而是檔案的讀寫,還有對讀入字串的分割處理。晚上寫作業的時候又用到了對字串的處理,這裡記錄一下。 小白第一次寫部落格,做的不好的請多多指正。 題目如下: Retail.dat檔案中包含了某零售商店
讀入一行字元(包括空格)做為一個字串的兩個方法 ,C/C++
今天參加華為線上測試(OJ),前兩道題都做對了,最後一道我算出了結果,卻不知道如何輸出來,== 題目大概是要求輸入一行字元(字元為數字、負號、小數點、空格組成)作為一個字串,在字串中提取整數單元,每兩個整數單元用空格隔開了,整數單元包含負數。
C++primer第五版 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串和長度較大的那個字串
一個字串比較的簡單程式。 string物件相等意味著它們的長度相同且所包含的字元也全都相同。 字串的比較: 1.如果兩個string物件的長度不同,而且較短string物件的每個字元都與較長string物件對應位置上的字元相同,就說string物件小於較長string物件
c++ 讀入和寫入文件
spa end ofstream OS pen clu img ++ lin 讀入 #include<ifstream> ifstream infile; infile.open(img_dir); while(getline(infile,tmp)){
C++ fscanf 讀取一整行
format 賦值 str orm can scanf mat har tabs scanf, fscanf很相似,都是從流中讀取輸入,然後賦值給變量 int scanf(const char *format, ...) int fscanf(FILE *stream, c
C語言 檔案大小,分配空間,讀入檔案,寫入檔案,實現複製的功能
首先通過兩種方法得到檔案的大小,位元組為單位,根據這個大小使用malloc分配固定的空間buffer,二進位制流讀入檔案,把二進位制流寫入buffer中,buffer輸出寫入到新的檔案。 原始檔1.txt,輸出檔案1.txt.txt 環境為Ubuntu 16.04,gcc #incl
『c++讀入與輸出的探索』
對於讀入與輸出的探索和優化 ·cin和cout ·scanf和printf ·關閉同步流 ·freopen和fclose ·整型read ·浮點型與字串read ·快輸 ·fread <更新提示> <第一次更新> <正