vs2017中怎么将C:\Users\王礼万\Desktop路径下的ASCII.txt文件中特别大的六位数、七位数缩小成1000以内的数,并另外保存
时间: 2023-06-14 13:06:55 浏览: 176
你可以使用以下代码实现该功能:
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
string inputFilePath = "C:\\Users\\王礼万\\Desktop\\ASCII.txt";
string outputFilePath = "C:\\Users\\王礼万\\Desktop\\ASCII_new.txt";
ifstream inputFile(inputFilePath);
ofstream outputFile(outputFilePath);
if (inputFile && outputFile)
{
string line;
while (getline(inputFile, line))
{
string outputLine = "";
int startPos = 0;
for (int i = 0; i < line.length(); i++)
{
if (isdigit(line[i]))
{
int endPos = i;
while (isdigit(line[endPos]))
{
endPos++;
}
string numStr = line.substr(startPos, endPos - startPos);
int num = stoi(numStr);
if (num > 1000)
{
num = num % 1000;
}
outputLine += to_string(num);
startPos = endPos;
}
else
{
outputLine += line[i];
}
}
outputFile << outputLine << endl;
}
inputFile.close();
outputFile.close();
cout << "Done!" << endl;
}
else
{
cout << "Error opening file!" << endl;
}
return 0;
}
```
这段代码会读取输入文件的每一行,将其中的数字提取出来,如果数字大于1000,则对1000取模,然后将处理后的行写入输出文件中。你需要将`inputFilePath`和`outputFilePath`变量设置为你的文件路径。
阅读全文