如何从文件中读取变音符号

how to read umlaut from file?

本文关键字:音符 符号 读取 文件      更新时间:2023-10-16

我正在创建一个程序来读取一些文件。在读取其中一个文件时,我在文件中遇到了一些变音字符。我应该如何阅读这些字符并将它们存储在字符串中?目前我正在使用无法读取这些字符的string::getline()并且读取指针的位置不递增。字符位于前面带有一些空格的行中。所以我正在使用ws来删除空格。我用peek来理解问题;当将鼠标悬停在 peek o/p char 上时,VS2010 显示 y 上有 2 个点。所以我想这是变音字符。

如果这是

你需要的 - 此代码从德语的文件 (UTF-8) 文本中读取,在控制台上打印并保存在输出文件中 -

#include <sstream>
#include <iostream>
#include <fstream>
//To handle localized input -
#include <windows.h>
#include <conio.h>
int main()
{
//read from file - 
    std::ifstream stream("c:\temporary\in.txt");
    std::string line;
    if (stream.is_open()) 
    { 
        std::getline(stream, line);
    }
//print on console -
    if(!SetConsoleOutputCP(CP_UTF8)) { // 65001
        std::cerr << "Failed to set console output mode!n";
        return 1;
    }
    HANDLE const consout = GetStdHandle(STD_OUTPUT_HANDLE);
    DWORD nNumberOfCharsWritten;
    const char* utf8 = line.c_str();
    if(!WriteConsoleA(consout, utf8, strlen(utf8), &nNumberOfCharsWritten, NULL)) {
        DWORD const err = GetLastError();
        std::cerr << "WriteConsole failed with << " << err << "!n";
        return 1;
    }
//write to file -
    std::fstream myfile;
    myfile.open("c:\Temporary\out.txt",std::ios::out);
    if (myfile.is_open()) 
    { 
        myfile << line <<"n"<<std::endl;
    } 
    myfile.flush();
    myfile.close();
    return 0;
}