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语句接收换行符