1. 關於c語言中的換行問題
while語句會重復執行,你輸入字元時,如果輸入了回車,那麼必然會執行else
if的語句
2. C語言文件處理,去掉文件中多餘的換行符
樓主可以參考我下面的例子,我按照你說的做了一下,測試通過:
#include <stdio.h>
int main()
{
//原來的從文件中讀取的字元串
char chBuf[] = "[01:40.11]Get back inside.\n"
"[01:45.45]What is he doing.What are you\n"
"doing out?! Get inside.\n"
"[02:12.45]......\n";
int i = 0;
//顯示一下原來的字元串
printf("%s\n", chBuf);
for (i=0; chBuf[i]; i++)
{
if (chBuf[i] == '\n' && chBuf[i+1] != '[')
{
chBuf[i] = ' ';
}
}
//顯示一下改後的字元串
printf("%s\n", chBuf);
return 0;
}
讀寫文件的操作我沒有做, 如果樓主需要, 可以hi我, 我告訴你怎麼添加.
3. C語言如何去掉字元串中換行符
C語言可以使用Replace函數去掉字元串中換行符。即Replace(字元串,'\n','')。
Replace函數語法為Replace (Expression, Find, ReplaceWith [, Start] [, Count] [, Compare])。
Expression必需的。代表將要執行替換操作的字元串。
Find必需的。代表要搜索的字元串。
ReplaceWith必需的。代表用於替換的字元串。
Start可選的。代表決定從Expression開頭向結尾數的第幾位開始搜索,默認值為1。
Count可選的。代表限制進行替換的次數,默認值為-1,即進行所有的替換。
Compare可選的。代表決定判斷子字元串的比較方式。
(3)c語言接收多餘換行擴展閱讀:
Replace函數如果搜索的字元串是一個數組,那麼它將返回一個數組。如果搜索的字元串是一個數組,那麼它將對數組中的每個元素進行查找和替換。
如果同時需要對某個數組進行查找和替換,並且需要執行替換的元素少於查找到的元素的數量,那麼多餘的元素將用空字元串進行替換。如果是對一個數組進行查找,但只對一個字元串進行替換,那麼替代字元串將對所有查找到的值起作用
4. C語言中gets函數能否只接收一個換行符 如gets(a),輸入時輸入回車
由於scanf函數遇到空格後就停止輸入,如需要輸入一句話的話,要嘗試其他的函數例如gets()函數。
原型函數為char *gets(char*buffer),返回一個指向char的指針,返回的指針與傳遞給他的指針是同一個指針。
例子:
char name[20];
gets(name);
printf(「%s」,name);
此時在控制界面中輸入hello world,輸出將會是hello world。
上例同時也可以寫成:
char name[20];
char *ptr;
ptr=gets(name);
printf(「%s」,name);
printf(「%s」,ptr);
此時兩句話輸出的都是hello world,從而證明ptr的指針就是賦給gets函數的指針。但是gets()函數有一個缺點,當輸入的字元串的長度大於申請的空間時,會造成空間越界,此時在函數執行結束釋放空間時會報錯。
(4)c語言接收多餘換行擴展閱讀
1、輸出字元串的效果,寬度和精度同樣也適用於字元串。
3、put是需要遇到』 』才會輸出的,因此通過字元串數組遍歷賦值時,不要忘記加』 』。
5. C語言換行符和回車符的疑問
這個是和緩沖區有關的,用戶輸入的數據是保存在緩沖區的,然後執行:scanf、gets等會從緩沖區讀數據。
在執行完scanf之後執行getcha確實接收到了『\n' ,這是因為scanf只接收了數字,緩沖區還有輸入的'\n' ,當調用getchar的時候不需要你再輸入它就已經接收到了數據,如果你把if去掉,那gets也不會等待你輸入,直接接收緩沖區的回車符。
在執行完scanf後想接收字元類數據就必須把緩沖區清空(flush)或者像這里調用一次getchar,這樣gets函數才能順利執行。
不知道我這樣講你能不能明白,還有疑問可以接著問......
6. C語言中怎樣換行
1 使用字元串,輸出在一個字元串結尾加上「 」,如「hello 」;
2 使用字元數組拼接成字元串(在嵌入式c的使用中是常見的),在數組末尾增加0x0d和0x0a;
如:
unsigned char data[8] data[0] = 『h』; data[1] = 『e』; data[2] = 『l』; data[3] = 『l』; data[4] = 『0』; data[5] = 0x0d; data[6] = 0x0a;
如果必要,可以加 ,或者等於0(』 』的ASCII是0)。 data[7] = 『 』;data[7] = 0;然後輸出即可。
7. C語言 換行問題
打開源文件讀
打開目標文件寫
用fscanf()函數,讀數據,讀一個寫一個,每8個一換行就可以了!
8. c語言getch();可以接收換行符嗎
我 知道 這是 為什麼?
如果 使用了 getch(); 函數的話。
回車 是 '\r' ASCII 碼 是 13
換行 是 '\n' ASCII碼 是 10
===============================
你 的 程序 要 改為
if(d[k]=='\r ')break;
或者 if(d[k]==13) break;
9. C語言中一個語句太長用什麼換行
1、區分不同情況,有多種方式可以採用。不管是哪種情況,都可以用結尾作為換行標記,在編譯時,後面的換行符將被忽略,當做一行處理。比如宏定義時使用#define my_puts(x) printf("%s",
x);和寫作#define my_puts(x) printf("%s",x);是沒區別的。 這里的必須存在,不能省略。
2、不過有些情況下可以採用更簡單的形式。在字元串中換行。當字元串過長,寫在一行中閱讀不便時,可以採用一種特殊的換行方式。C語言規定,連續的用""引起的字元串常量,會默認合並為一個常量字元串。
(9)c語言接收多餘換行擴展閱讀:
1、換行符(line break),是一種計算機語言表達方式,它的作用是跳到下一個新行。在不同的語言中,代碼也有所不同。例如:<br>、"
"、"endl"等。
2、回車 ( ) 本義是游標重新回到本行開頭,r的英文return,控制字元可以寫成CR,即Carriage Return;。
3、換行 ( ) 本義是游標往下一行(不一定到下一行行首)、n的英文newline,控制字元可以寫成LF,即Line Feed。在不同的操作系統這幾個字元表現不同,比如在WIN系統下,這兩個字元就是表現的本義,在UNIX類系統,換行 就表現為游標下一行並回到行首,在MAC上, 就表現為回到本行開頭並往下一行,至於ENTER鍵的定義是與操作系統有關的。
4、C語言中的換行符是" ",就是輸入完一行內容後,游標轉到下一行的起始位置 。
例如:
printf("first line ");
printf("second line ");
5、HTML語言的換行符:<br>
<br> 可插入一個簡單的換行符,<br> 標簽是空標簽(意味著它沒有結束標簽,因此這是錯誤的:<br></br>)。在[1]
XHTML 中,把結束標簽放在開始標簽中,也就是 <br />。<br> 標簽只是簡單地開始新的一行,而當瀏覽器遇到 <p> 標簽時,通常會在相鄰的段落之間插入一些垂直的間距。
6:C++語言的換行符:C++語言中的換行符是endl。
例如:
cout<<"這是換"<<endl<<"行符";
將顯示輸出:
這是換
行符。
7、word換行符
word換行符是一種換行符號,它的作用是換行顯示,但是它不是真正的段落標記,它的換行不是真正意義上的重起一段,因此被換行符分割的文字其實仍然還是一個段落中的,word中基於段落的所有操作都是不會識別換行符為段落結尾的。
8、在VB中,若命令太長,在一行輸入不方便,可以在代碼後輸入空格和下劃線再換行。
例如:
Private Declare Function mciSendString Lib winmm. _
dll Alias mciSendStringA (ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal uReturnLength _
As Long, ByVal hwndCallback As Long) As Long。
資料來源:網路:換行符
10. c語言用gets時會把上一條的換行符接收,要怎麼去除
用fflush命令,或者多加一個get語句接收換行符