Так что я только что заметил что-то странное об открытии .txt-файлов в возвышенном виде, которые были созданы в vim.Открытие файла .txt, созданного в vim в sublime
Кажется, что sublime добавляет пустую строку в конец .txt-файла. Например, если я использую Vim/Gedit ввести следующий файл 2 строки:
1
2
Когда я открываю этот .txt файл в Sublime, он открывается как
1
2
~
где я использовал «~ msgstr "представлять пустую строку. Может ли кто-нибудь попробовать это и сказать мне, если это то же самое для вас?
Это код, который я использую, что, кажется, не работает, когда я создаю файл .txt в возвышенной:
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int main()
{
int a;
int b;
ifstream inFile;
bool validInputFound;
inFile.open("inputVals.txt");
if (inFile.fail())
{
cout << "Unable to open input file!" << endl;
exit(1);
}
validInputFound = false;
while (!validInputFound)
{
inFile >> a;
if (inFile.eof())
{
cout << "EOF before reading a" << endl;
exit(2);
}
else if (inFile.fail())
{
inFile.clear();
inFile.ignore(200, '\n');
}
else
{
validInputFound = true;
}
}
cout << "Read a: " << a << endl;
validInputFound = false;
while (!validInputFound)
{
inFile >> b;
if (inFile.eof())
{
cout << "EOF before reading b" << endl;
exit(2);
}
else if (inFile.fail())
{
inFile.clear();
inFile.ignore(200, '\n');
}
else
{
validInputFound = true;
}
}
cout << "Read b: " << b << endl;
cout << "Sum: " << a + b << endl;
inFile.close();
return (0);
}
Ожидаемый результат:
Read a: 1
Read b: 2
Sum: 3
Но если вы создать файл inputVals.txt в возвышенном, вы получите:
Read a: 1
EOF before reading b
Что вы думаете? Вы подозреваете, что один из этих редакторов добавит CR/LF? Если у вас есть какие-то сомнения, просто откройте файл в шестнадцатеричном редакторе и проверьте. – kebs
ну, мой ОП задает вопрос, не указывая точку. – nm17
Уверен, но этот вопрос немного не соответствует мне, поэтому я просил разъяснений. Если вы подозреваете, что редактор делает странные вещи, чем убедитесь, что это правда, тогда спросите: «Почему XXX делает YYY». Для меня это всего лишь некоторое поведение дисплея, поэтому отключить тему для SO. Дальше, в чем смысл? Какая разница, с точки зрения программистов, что XXX показывает пустую строку в конце файла? – kebs