我使用这个函数将文件的内容放在char数组中:
void Read::readFile(){
FILE * fp = fopen(this->filename,"rt");
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fseek(fp, 0, SEEK_SET);
char *pData = new char[size + 1];
fread(pData, sizeof(char), size, fp);
fclose(fp);
this->data = pData;
}
Run Code Online (Sandbox Code Playgroud)
现在我想从char数组中去掉所有的行结尾.如何在不首先将char-array转换为字符串的情况下执行此操作?
顺便说一句.这是我们不允许使用字符串库的作业的一部分.
#include <algorithm>
size = std::remove(pData, pData + size, '\n') - pData;
pData[size] = 0; // optional
Run Code Online (Sandbox Code Playgroud)
对于一些C++ 11 lambda fun:
#include <algorithm>
size = std::remove_if(pData, pData + size, [](char c) { return c == '\n'; }) - pData;
pData[size] = 0; // optional
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5887 次 |
| 最近记录: |