当读文件为英文时,对文本文件的写入显示为中文

Writing to text file are appearing in Chinese when the read file is in english

本文关键字:文件 显示 文本 中文 文时      更新时间:2023-10-16

谁能告诉我这个程序出了什么问题?它应该从输入文件中读取并写入输出文件。它会用'。,表示行已经结束。

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cctype>
int _tmain(int argc, _TCHAR* argv[])
{
    const int LENGTH = 250;
    char in[LENGTH];
    std::ifstream inFile;
    std::ofstream outFile;
    char ch;
    inFile.open("infile.txt");
    if (inFile.fail())
    {
        std::cout << "Error no file";
        exit(1);
    }
    outFile.open("outfile.txt", std::ios::out);
    while (!inFile.fail())
    {
        int count = 1;
        inFile.getline(in, LENGTH);
        ch = toupper(in[0]);
        outFile << ch;
        std::cout << ch;
        while (!(ch == '.'))
        {
            ch = in[count];
            outFile << ch;
            std::cout << ch;
            outFile.flush();
            count++;
        }
    }
    inFile.close();
    outFile.close();
    return 0;
}

当我运行这段代码时,输出文件充满了中文字符。当显示到cout时,它似乎正确地显示它减去格式问题,我想当它被写入文件时,流没有冲洗,只是将ASCII数字组合在一起。

谢谢你的帮助

while (!(ch == '.'))

将使您读取超出中的字符数组,并导致stackoverflow。

要解决此问题,请尝试用

替换这一行
while (ch != 0)

您应该依靠0(ascii '')来检查终端是否有C字符串,而不是字符'.'