C++的win32里面如何从文件中读取换行符? 35
我想读取一串字符串,中间换个行。直接添加“\n”是不行的,或者回车换行也是不行的,请问合理的方法。比如:文档:abc.txt文档内容:“今天上山打老虎”目的:在WIN32...
我想读取一串字符串,中间换个行。直接添加“\n”是不行的,或者回车换行也是不行的,请问合理的方法。
比如:
文档:abc.txt
文档内容:“今天上山打老虎”
目的:在WIN32程序中读取文档并能输出“今天上山
打老虎” 展开
比如:
文档:abc.txt
文档内容:“今天上山打老虎”
目的:在WIN32程序中读取文档并能输出“今天上山
打老虎” 展开
5个回答
展开全部
按照你问题补充写了一个,在vc上调试通常。
#include <stdio.h>
#include <malloc.h>
#include <process.h>
main()
{
int i,flen;
char temp[100];
FILE *fp;
if((fp=fopen("d:\\kc1.txt","r"))==NULL)
{
printf("can not open\n");
exit(0);
}
fseek(fp,0,SEEK_END);
flen=ftell(fp); //文件长度
fseek(fp,0,SEEK_SET);
printf("%d\n",flen);
for(i=0;i<flen;i++)
{
fscanf(fp,"%c",&temp[i]);
printf("%c",temp[i]);
if((i+1)%8==0) //每显示4个中文换行
printf("\n");
}
fclose(fp);
}
#include <stdio.h>
#include <malloc.h>
#include <process.h>
main()
{
int i,flen;
char temp[100];
FILE *fp;
if((fp=fopen("d:\\kc1.txt","r"))==NULL)
{
printf("can not open\n");
exit(0);
}
fseek(fp,0,SEEK_END);
flen=ftell(fp); //文件长度
fseek(fp,0,SEEK_SET);
printf("%d\n",flen);
for(i=0;i<flen;i++)
{
fscanf(fp,"%c",&temp[i]);
printf("%c",temp[i]);
if((i+1)%8==0) //每显示4个中文换行
printf("\n");
}
fclose(fp);
}
展开全部
完全不理解你要做什么。 你是要读一个两行的字符串,还是要在读进来的字符串中间插个换行?
直接添加\n为什么不行?
直接添加\n为什么不行?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-07-08
展开全部
istream& get ( char& c );
istream& get ( char* s, streamsize n );
istream& get ( char* s, streamsize n, char delim );
istream& get ( streambuf& sb);
istream& get ( streambuf& sb, char delim ); 可以用这个,delim为空格。
例子:
[16:03:01@~/c-cpp]$ cat input.txt 这是输入文件
first
second third
[16:03:17@~/c-cpp]$ cat a.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream ifs("input.txt");
char buf[100];
ifs.get(buf, 100, ' '); 用空格分割字符串,字符串可以有换行符
cout << buf; 输出
return 0;
}
[16:03:29@~/c-cpp]$ g++ a.cpp
[16:03:32@~/c-cpp]$ ./a.out 这里的输出字符串就有了换行符
first
second[16:03:33@~/c-cpp]$
istream& get ( char* s, streamsize n );
istream& get ( char* s, streamsize n, char delim );
istream& get ( streambuf& sb);
istream& get ( streambuf& sb, char delim ); 可以用这个,delim为空格。
例子:
[16:03:01@~/c-cpp]$ cat input.txt 这是输入文件
first
second third
[16:03:17@~/c-cpp]$ cat a.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream ifs("input.txt");
char buf[100];
ifs.get(buf, 100, ' '); 用空格分割字符串,字符串可以有换行符
cout << buf; 输出
return 0;
}
[16:03:29@~/c-cpp]$ g++ a.cpp
[16:03:32@~/c-cpp]$ ./a.out 这里的输出字符串就有了换行符
first
second[16:03:33@~/c-cpp]$
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接添加 "\\n"可以不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
试一下"\r\n".
不过我觉得"\n"应该可以换行啊。
不过我觉得"\n"应该可以换行啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询