当前位置: 首页 > 知识库问答 >
问题:

Windows Linux子系统(WSL)中的C字符串连接正在删除第一个字符串

公良文彬
2023-03-14

我需要帮助了解我的代码或系统的错误。出于某种原因,在WSL(Linux的Windows子系统)中编译和运行时,以下代码会生成错误的结果。当直接在windows命令终端中运行时,它正确地生成最终输出为HNDPNV,并在WSL中生成PNV。机场文件只是一系列50行,每行3个字母。g版本是7.5。Ubuntu18.04 WSL和g windows版本中的0是9.2。0

编译标志是:g-std=c17-Wall-Wextra-o test。cpp

#include <iostream>
#include <cstdlib>
#include <string>
#include <fstream>

using namespace std;


int main() {

    string airport_designations[50];
    string air_companies_designations[20];

    ifstream airports;
    ifstream aircompanies;
    string name = "apple";
    string name2 = "orange";

    airports.open("Airports.txt");
    for (int i = 0; i < 50; i++){

        getline(airports, airport_designations[i]);
        cout << airport_designations[i] << endl;

    }
    airports.close();

    aircompanies.open("Companies.txt");
    for (int i = 0; i < 20; i++){

        getline(aircompanies, air_companies_designations[i]);
        cout << air_companies_designations[i] << endl;

    }
    aircompanies.close();

    name = airport_designations[4];
    cout << name << endl;
    name += airport_designations[8];
    cout << name << endl;

}

共有1个答案

谢阳成
2023-03-14

windows上的换行符是\r\n,Linux上的换行符。要得到一致的结论,您需要替换机场中的所有换行符。包含的txt文件\n。

 类似资料:
  • 问题内容: 我想删除字符串的第一个字符。 例如,我的字符串以a开头,而我只想删除它。字符串中有几次不应删除。 我正在用Python编写代码。 问题答案: python 2.x python 3.x 两张画

  • 问题内容: 假设我有一个字符串, 我想删除最后一个字符串,或者该字符串看起来像还是 我仍然希望得到我的结果。并且请尝试在您的答案中做些解释。我不只是想复制粘贴内容而不了解它。谢谢你。 问题答案: 处理这样的“修饰”逗号的一种方法是使用以下语句: 这非常不言而喻:该语句考虑了三种情况- 当字符串的两边都有逗号时, 当字符串以逗号开头但不以逗号结尾时,以及 当字符串以逗号结尾但不以一个字符开头时。 在

  • 问题内容: 我已经在SOAP消息中工作过,以从Web服务获取LoginToken,并将LoginToken存储在String中并用于打印。此打印[wdsd34svdf],但我只想wdsd34svdf,如何删除方括号。请任何人帮助我。 谢谢 例: 输出:[wdsd34svdf]我想要wdsd34svdf 问题答案: 这很容易,您需要先找到[和]的索引,然后再找到子字符串。(这里[总是在开始处,]在结

  • 问题内容: 我有一串琴弦,其中一些琴弦。我只想删除最后四个字符。 换句话说,我有 我希望它成为 Python处理此问题的方法是什么? 问题答案:

  • 问题内容: 可以说我有这个单词列表: 比我有文字 是否有匹配stopWords并在忽略大小写时将其删除的方法;像这样的地方?: 结果: 如果您了解正则表达式,效果很好,但我真的更喜欢像Commons解决方案这样的东西,它更注重性能。 顺便说一句,现在我正在使用此通用方法,该方法缺少适当的不区分大小写的处理: 问题答案: 这是不使用正则表达式的解决方案。我认为它不如我的其他答案,因为它更长且不清楚,