2015-11-11 3 views
-2

Я довольно начинающий программист, беру несколько курсов на втором курсе обучения на высоком уровне, и у меня возникли проблемы. Так что давайте продолжим.Создание, управление и удаление файлов на C++ с использованием xCode

Короче говоря, я узнал, как создавать файлы, такие как:

#include <iostream> 
#include <fstream> 
using namespace std; 

int main(){ 
    string Test; 
    ofstream file; 
    file.open("Cookies.txt"); 
    if(file.is_open()){ 
     file << "I have cookies! :3" << endl; 
     file.close(); 
    } 
    else{ 
     cout << "Error. No file has been created." << endl; 
    } 
    ifstream cookies; 
    cookies.open("Cookies.txt"); 
    if(cookies.is_open()){ 
     cout << cookies.rdbuf(); 
    } 

    return 0; 
} 

Но мой вопрос теперь в том, как мне нравится «использовать», что находится в этом файле? Например, если я хочу сохранить переменные или импортировать «Я куки!»: 3 »в строковую переменную в основной программе. Потому что кажется разумным, что это должно быть возможно, я еще не выяснил, как это сделать.

Также, как мне удалить файлы, которые я создал? Потому что что-то вроде file.delete ("Cookies.txt"); не работает вообще.

Благодарим вас за ответы. С уважением, Staggen.

+2

Возможно, вам следует следовать полному руководству по файлу IO и т. Д. Этот вопрос очень широк, и ваши конкретные вопросы должны быть освещены там. – anderas

ответ

0

Вы можете прочитать из файла в подобной манере писать к нему, используя ifstream (вход FILESTREAM) вместо ofstream (выход FileStream), и с помощью оператора >> читать в переменные. Он по умолчанию читает одно значение в то время, и для строк, которые переводят в «слова»:

Итак:

if (cookies.is_open()) 
{ 
    std::string word; 

    while (cookies >> word) // read from the filestream into "line" 
    { 
    std::cout << "Read a word: " << line << std::endl; 
    } 
} 

Это довольно хороший метод для чтения различных типов данных.

Чтобы прочитать всю строку, вы можете использовать std::getline() с символом новой строки в качестве разделителя:

if (cookies.is_open()) 
{ 
    std::string line; 

    while (std::getline(cookies, line, '\n')) 
    { 
    std::cout << "Read a line: " << line << std::endl; 
    } 
} 

Удаление файла является деятельность на уровень ОС не связанное с чтением/записью файлов. Заголовок <cstdio> включает в себя std::remove(), который удаляет файлы.

@anderas is right; вы должны пройти через a tutorial в файл ввода/вывода, чтобы узнать или закрепить основы.

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