簡體   English   中英

C在終端中執行C文件時,如何在fgets()或scanf()提示時在輸入中添加換行符?

[英]C When executing C file in terminal, how can I add line break to input when prompted by fgets() or scanf()?

場景1

char string[MAX_BYTES] = "This is a string\nthat I'm using\nfor scenario 1";

方案2

printf("Enter string: ");
fgets(string, MAX_BYTES, stdin);

如果我提供代碼內的字符串(場景1),則可以用' \\n'換行。

但是,如果在終端中使用fgets()scanf() (場景2),請按enter繼續執行代碼。

如何在不觸發其余代碼的情況下向輸入添加換行符?

通常,這不能通過fgetsscanf來完成,但是可以使用getchar代替:

int ch;
int idx = 0;
while( ( (ch = getchar()) != EOF ) && idx < MAX_BYTES)
{
    string[idx++] = ch;
}
printf("%s", string);

請注意, getchar將接受包括\\n在內的任何輸入,並且當EOFstdin Ctrl + D)時, while循環終止。 然后,您將每個字符相應地復制到緩沖區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM