逐行读写字符串数组到文本txt文件

C语言方式


将字符串数组写入到txt文件中

有五个文件名存储在字符串数组中,欲将其逐行写入到txt文件中保存到磁盘上。

利用fprintf对文件进行格式化输出

void Filewrite()
{
    FILE *fp;
    char * name[] = {"filen1", "file2", "file3", "file4", "file4"};
    fp = fopen("E://test.txt", "w");
    for (int i = 0; i < 5; i++)
    {
        fprintf(fp, "%s\n", name[i]);
    }
    fclose(fp);
}

使用fputs函数逐行写入

char *InputStr="this is ok";    
FILE* fp = fopen("C:\\1.txt", "wt");    
if(fp != NULL)  
{
    fseek(fp, 0, SEEK_END); 
    fputs(InputStr, fp);        
    fputs("\r\n",fp);       
    fclose(fp); 
}

逐行读取txt文件中的字符串

text.txt文件内容如下

file1
file2
file3
file4
file4

欲将其读入到一个字符串数组中

利用fscanf对文件进行格式化输入

void Fileread()
{
    int i = 0;
    FILE *fp;
    fp = fopen("E://test.txt", "r");
    char  name[6][10];

    while(!feof(fp))
    {
        fscanf(fp,"%s", name[i]);
        printf("%s", name[i]);
        i++;
    }
    fclose(fp);
}

C ++ 方式


#include <fstream>
#include <string>
#include <iostream>
using namespace std;

int main()
{
    ifstream in("test.txt");
    string filename;
    string line;

    if(in) // 有该文件
    {
        while (getline (in, line)) // line中不包括每行的换行符
        { 
            cout << line << endl;
        }
    }
    else // 没有该文件
    {
        cout <<"no such file" << endl;
    }

    return 0;
}

实现文件file1,到文件file2的复制

#include <fstream>
#include <string>
#include <iostream>
using namespace std;

void fileCopy(char *file1, char *file2)
{
    // 最好对file1和file2进行判断

    ifstream in(file1);
    ofstream out(file2);
    string filename;
    string line;

    while (getline (in, line))
    { 
        out << line << endl;
    }
}

int main()
{
    fileCopy("1.txt", "2.txt");
    return 0;
}

MFC方式


在MFC框架下,推荐使用CString和CFile处理字符串和文件,这样不涉及编码转换问题,处理方便,不容易出错。

CFile f;
f.Open(_T("d:\\txl.txt"),CFile::modeReadWrite);
CString wstr;
int len = strSum.GetLength();
cf.Write(strSum.GetBuffer(len), len);
f.Write("\r\n", 2);
f.Close();

可能出现编码混乱的现象,这时可以使用CS

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值