2016-03-13 3 views
0

Так что я только что заметил что-то странное об открытии .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 
+0

Что вы думаете? Вы подозреваете, что один из этих редакторов добавит CR/LF? Если у вас есть какие-то сомнения, просто откройте файл в шестнадцатеричном редакторе и проверьте. – kebs

+0

ну, мой ОП задает вопрос, не указывая точку. – nm17

+0

Уверен, но этот вопрос немного не соответствует мне, поэтому я просил разъяснений. Если вы подозреваете, что редактор делает странные вещи, чем убедитесь, что это правда, тогда спросите: «Почему XXX делает YYY». Для меня это всего лишь некоторое поведение дисплея, поэтому отключить тему для SO. Дальше, в чем смысл? Какая разница, с точки зрения программистов, что XXX показывает пустую строку в конце файла? – kebs

ответ

Смежные вопросы