C/C++分别读取文件,以空格为分隔符
C语言:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char* argv[]) { int count = 0; FILE* fp; char str[100]; fp = fopen("test.txt", "r"); while (fscanf(fp, "%s", str) != EOF) { printf("%s\n", str); count++; } fclose(fp); return 0; }
程序输出:
C++语言:
(转载)http://www.cnblogs.com/chenliangqiao/archive/2011/07/11/2102741.html
2.2.3 读写文件
在这段程序中,我们首先创建了一个输入文件流ifstream的对象fin,并利用它的构造函数将其连接到一个文本文件Date.txt。所谓构造函数,就是这个对象创建的时候所执行的函数。这里,我们使用“Date.txt”作为参数来调用这个构造函数,实际上就是使用这个文件创建fin对象。除此之外,我们还可以使用fin所提供的open()函数来打开一个文件。当我们利用fin成功打开一个文件之后,就可以利用提取符“>>”从fin中提取各种数据。“>>”会以空格为分隔符逐个从文件中读取数据并将其保存到相应的数据变量中。例如,如果文件中的内容如下:
用户输入的当前日期是:
1983 7 3
默认情况下,fin总是从文件的开始部分进行读取的,为了直接读取第二行的内容,我们使用“fin.ignore(256,'\n');”忽略了第一行的内容,将读取位置跳转到第二行。然后,通过提取符“>>”,我们将第二行用空格分割的三个数据分别提取并保存到了三个变量中。
同样,为了将数据写入文件,我们需要创建一个输出文件流ofstream的对象fout,然后通过它的构造函数或者是open()函数来打开一个文件,将这个文件和fout对象连接起来,然后通过插入符“<<”将数据插入到fout对象,也就实现了将数据写入到它所关联的文件中的目的。整个过程如下图2-9所示:
#include <iostream> #include <string> #include <fstream> using namespace std; int main(int argc, char** argv) { ifstream ifs("test.txt"); string str; int count = 0; while (ifs >> str) { cout << str << endl; count++; } ifs.close(); return 0; }
程序输出:
总结:在C语言中使用fsanf()就可以实现以空格为分隔符读取文件内容。
而在C++中,ifstream的>>---提取符直接就是以空格为分隔符读取文件内容。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架