导航:首页 > 文件管理 > 如何让文件换行读取

如何让文件换行读取

发布时间:2022-09-12 06:15:54

⑴ c++如何读取文件中的换行符

c++读取文件中的换行符的方法:

  1. 回车的ASCII代码16进制是“0x0d” 10进制是“13” 在某些语言中可以用‘ ’表示。不同的操作系统对回车的处理是不同的:在Unix/Linux系统中,换行用' '一个字符表示,而在Windows系统中,则用" "两个字符表示。

  2. 读取字符判断是否等于' '或者' ',如果等于就是回车。

例程:

#include<iostream>
usingnamespacestd;
voidmain()
{
chari;
i=cin.get();
while(i!='q')
{
if(i==' '||i==' ')//判断是否等于' '或者' '
cout<<"你输入了回车!";
else
{
cout<<i;
}i=cin.get();
}
}

⑵ c#从txt读取数据并赋值时的换行读取

方法1:以textbox为例
①:先设置textbox的属性Multiline为true
②:组织好显示字符串:FistLine(第一行要显示的字符)、SecondLine(第二行要显示的字符)、。。。。。。。、第n行字符
③textbox.text="FistLine"+System.Environment.NewLine+"SecondLine"+System.Environment.NewLine+。。。。+"第N 行"+System.Environment.NewLine
当你看到上面代码的时候可能会认为我们一般用的换行符不是"\r\n"吗
你会想到这种方式:textbox.text="FistLine"+“\r\n”+"SecondLine"+"\r\n"+。。。。+"第N 行"+"\r\n"
这种格式可能在运行时也不会出错,但在Linux操作系统或其他系统可能就会出错
WinForm的 textbox截图效果:

请点击输入图片描述
Textbox例子1用("\r\n"):具体代码:

复制代码代码如下:

/// <summary>
/// 将结果填充到会员预定情况框
/// </summary>
/// <param name="dt"></param>
private void BindGuestOrder(DataTable dt)
{
int intRowsCount;
intRowsCount = dt.Rows.Count;
string[] strName = new string[intRowsCount];
string[] strPhone = new string[intRowsCount];
string[] strRoom = new string[intRowsCount];
string[] strNum = new string[intRowsCount];
string[] strTime = new string[intRowsCount];
for (int intRows = 0; intRows < intRowsCount; intRows++)
{
strName[intRows] = dt.Rows[intRows]["GuestName"].ToString();
strPhone[intRows] = dt.Rows[intRows]["LinkPhone"].ToString();
strRoom[intRows] = dt.Rows[intRows]["RoomName"].ToString();
strNum[intRows] = dt.Rows[intRows]["BookNo"].ToString();
strTime[intRows] = dt.Rows[intRows]["DineTime"].ToString();
AddMsgToTextBox("客人姓名:" + strName[intRows]);
AddMsgToTextBox("客人电话:" + strPhone[intRows]);
AddMsgToTextBox("预定房间:" + strRoom[intRows]);
AddMsgToTextBox("预约号:" + strNum[intRows]);
AddMsgToTextBox("预定时间:" + strTime[intRows]);
}
}

private int intCounts = 1;
/// <summary>
/// 显示多行文本
/// </summary>
/// <param name="s"></param>
public void AddMsgToTextBox(string s)
{
int intCount1;
intCount1 = intCounts / 5;
CheckTextBox(intCount1);
txtVIPAdvanceOrder.Text += "\r\n" + s;
if (intCounts % 5 == 0)
{
txtVIPAdvanceOrder.Text += "\r\n";
}
intCounts++;
}

/// <summary>
/// 设置换行
/// </summary>
protected void CheckTextBox(int intCount1)
{
int iLines = 5 * (intCount1 + 2); //想显示多少行。

string stxt = txtVIPAdvanceOrder.Text;
string[] s = stxt.Split('\n');
if (s.Length < iLines)
return;
txtVIPAdvanceOrder.Text = "";
for (int i = 1; i < s.Length; i++)
{
txtVIPAdvanceOrder.Text += s[i] + "\r\n";
}
stxt = txtVIPAdvanceOrder.Text;
if (stxt != "")
txtVIPAdvanceOrder.Text = stxt.Substring(0, stxt.Length - 1);
}

例子2:截图效果(dev 控件(Memoedit)):

请点击输入图片描述
源码:

复制代码代码如下:

/// <summary>
/// 将结果填充到会员预定情况框
/// </summary>
/// <param name="dt">预定会员的信息表</param>
private void BindGuestOrder(DataTable vardt)
{
memGusetInfo.Text = "";
int tmpRowsCount;
tmpRowsCount = vardt.Rows.Count;
string[] tmpstrName = new string[tmpRowsCount];
string[] tmpstrPhone = new string[tmpRowsCount];
string[] tmpstrRoom = new string[tmpRowsCount];
string[] tmpstrNum = new string[tmpRowsCount];
string[] tmpstrTime = new string[tmpRowsCount];
for (int i = 0; i < tmpRowsCount; i++)
{
tmpstrName[i] = vardt.Rows[i]["GuestName"].ToString();
tmpstrPhone[i] = vardt.Rows[i]["LinkPhone"].ToString();
tmpstrRoom[i] = vardt.Rows[i]["RoomName"].ToString();
tmpstrNum[i] = vardt.Rows[i]["BookNo"].ToString();
tmpstrTime[i] = vardt.Rows[i]["DineTime"].ToString();
string tmpstr1 = "客人姓名:" + tmpstrName[i] + System.Environment.NewLine;
string tmpstr2 = "客人电话:" + tmpstrPhone[i] + System.Environment.NewLine;
string tmpstr3 = "预定房间:" + tmpstrRoom[i] + System.Environment.NewLine;
string tmpstr4 = "预约号:" + tmpstrNum[i] + System.Environment.NewLine;
string tmpstr5 = "预约时间:" + tmpstrTime[i] + System.Environment.NewLine;
memGusetInfo.Text += string.Format("{0}{1}{2}{3}{4}", tmpstr1, tmpstr2, tmpstr3, tmpstr4, tmpstr5) + System.Environment.NewLine;
}
}

⑶ C语言 fscanf语句读取文件时怎么换行

fscanf()和scanf()一样,都是以白字符(<space>、<Tab>和<Enter>)作为分隔符的,就是说,当读到白字符时,就结束当前数据的读入,并将下一个数据赋给下一个变量。白字符不会当作数据的一部分赋给变量,而会被舍弃,但最后一个白字符会被保留在源数据流中。
例如
char s[20];
int a,b,c;
数据文件中的数据是:
John 89 99 70<CR>
Jeo 78 99 69<CR>
用fscanf(infp,"%s%d%d%d",s,&a,&b,&c);读取时,"John"复制到s,98赋给a,99赋给b,70赋给c,最后的<CR>会保留在文件中,当下一个scanf()函数再行读入时,首先碰到<CR>,这个<CR>会被读出并丢弃,即使有多个白字符也同样被丢弃,直到读到有效数据。

⑷ txt文件如何换行

推荐用软件Replace Pioneer的正则表达式功能,把空格或table替换成换行符。详细操作:
1. ctrl-o打开文本文件
2. ctrl-h打开replace窗口
* 在search for pattern输入[\ \t]+表示连续的空格或制表符
* 在replace with pattern输入\n表示换行符
3. 点击Replace即可,ctrl-s存盘。

⑸ c语言读取txt中数据如何换行

没有必要读入换行,数据读入后如何输出排版可自行安排。如果要原原本本读进来,请换一个函数,用fgets来读,它能把换行读进来,且读入换行后就认为这一行结束了……

⑹ c/c++中txt文件读写换行怎么实现

"\r\n"其实是复回车和换行两个字符制
"\n"是
new
line,换行。
"\r"是
carriage
return,回车。
在mac系统中的文本换行只用"\r",在unix系统中只用"\n",在我们最常用的windows系统中是"\r\n"。
楼主的写法会受到程序的字符集影响。如果是mbcs字符集中,"\n"就可以进行文本换行,"\r\n"在某些文本编辑器中会转换成两个换行符。
windows自带的记事本对于换行符的识别能力很弱,你用程序写入"\r\n"进行换行,但直接在记事本中回车就只添加了"\n",再次打开时很容易出错的。
解决方法:
建议你用mfc的cstring类存储字符串,并在写入时用str=_t("test.\n");的写法。对文本文件的写入用cstdiofile类的writestring函数,它可以实现对不同字符集的回车转换。
如果程序字符集是unicode的话,别忘记在文本文件头部加入bom头。具体请参阅msdn

⑺ c语言 fscanf如何按照回车换行读取文本文档中的数据

  1. fscanf函数不能够按照回车换行读取数据,它遇到空格字符时也会断开,建议使用fgets函数。

  2. scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
    ① 遇空格、“回车”、“跳格”键。
    ② 遇宽度结束。
    ③ 遇非法输入。

  3. fgets函数从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋''),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

    函数原型
    char *fgets(char *buf, int bufsize, FILE *stream);
    参数
    *buf: 字符型指针,指向用来存储所得数据的地址。
    bufsize: 整型数据,指明存储数据的大小。
    *stream: 文件结构体指针,将要读取的文件流。
    返回值
    成功,则返回第一个参数buf;
    在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;
    如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。

⑻ c语言中怎样在文件写入时换行

假设已经打开的文件句柄为fp

如果是文本文件,用如下语句写入换行
fprintf(fp,"\n");
如果是二进制文件,用如下语句写入换行
char ch[]="\n\r";
fwrite(ch,2,1,fp);

阅读全文

与如何让文件换行读取相关的资料

热点内容
彩京1945无敌版安卓 浏览:176
eset9禁止程序联网 浏览:836
opencvforlinux安装 浏览:356
唇裂数据多少才会裂到鼻底 浏览:662
大数据侦查传统 浏览:953
cad40个常用文件 浏览:432
ug数控编程需要什么插件 浏览:253
蓝狐影视文件夹是什么 浏览:656
数据如何指导用户运营 浏览:108
如何把edc文件转化成pdf 浏览:127
小影怎么制作视频教程 浏览:667
什么是数据网络漫游 浏览:605
扫雷win10版要付费 浏览:336
宜宾全通网络技术有限责任公司 浏览:161
手机qq聊天里视频文件 浏览:948
苹果7标配的充电头是多少a 浏览:349
1011越狱后白苹果 浏览:881
编程是学些什么东西说说 浏览:383
大数据立法的必要性 浏览:327
棱镜大数据 浏览:471

友情链接