ascii — конвертирует разделенный пробелами текст значения в .csv с помощью c ++ и сохраняет его

Как преобразовать файл .asc (значение, разделенное пробелами) в файл .csv с помощью c ++, а затем сохранить его как файл .csv на ПК или Android.

Примечание. Этот файл .asc предназначен для данных srtm, поэтому он большой, состоит из 3600 строк и 3600 столбцов.
Пожалуйста, без программного обеспечения, как Excel или тому подобное.
Я искал в Google, но безрезультатно

редактировать

Посмотрите на рисунок, чтобы увидеть пример 1

файл .asc:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 3 3 3 3 4 4 5 5 4 5 5 6 6 6 6 5 5 4 3 3 2 3 5 6 7 7 8 9 10 10 10 11 12 11 10 10 11 13 14 14 14 13 13 12 12 11 11 11 11 11 10 10 10 10 10 10 11 11 13 14 13 13 13 14 14 14 14 14 15 15 14 14 14 15 15 14 14 16 17 18 20 23 27 31 32 35 38 41 43 44 46 47 48 50 50 49 49 50 51 51 54 55 56 58 59 59 61 62 62 62 61 58 54 53 52 52 51 51 53 54 51 51 50 50 49 49 50 51 52 53 53 52 51 51 52 57 62 61 59 57 57 57 60 60 60 59 58 58 58 58 57 57 57 61 63 64 62 -32768
тогда новая строка
и другое число следует за тем же номером паттерна данных, разделенных пробелом

Заметка
Это выглядит как на рисунке

Я знаю только так:

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

int main () {

ofstream file;

file.open ("example.txt");

file << "Please write this data to a file using C++\n";

file.close();

return 0;

}

но не чтение, а затем преобразование

-2

Решение

Я создал небольшую программу на C ++, которая решит ваши требования.

int main()
{
std::ifstream ascfile;
std::ofstream csvFile;
ascfile.open("source.asc");
csvFile.open("output.csv");

if (ascfile.is_open())
{
std::string line;
while(std::getline(ascfile, line))
{
int p = 0;
while ((p = line.find(' ', p)) != std::string::npos)
{
line.insert(p, ",");
p += 2;
}
csvFile << line <<std::endl;
}

}
else
{
std::cout << "Sorry, the file could not be openend." << std::endl;
return -1;
}
ascfile.close();
csvFile.close();
return 0;
}

добавить заголовочный файл iostream, fstream, string

Привет, я изменил приведенную выше программу ниже, так как вышеуказанная программа не заменяет пробел, используйте приведенную ниже программу, а необходимо добавить заголовочный файл: —

int main()
{
std::ifstream ascfile;
std::ofstream csvFile;
ascfile.open("source.asc");
csvFile.open("output.csv");

if (ascfile.is_open())
{
std::string line;
while(std::getline(ascfile, line))
{
std::replace( line.begin(), line.end(), ' ', ',');
csvFile << line <<std::endl;
}

}
else
{
std::cout << "Sorry, the file could not be openend." << std::endl;
return -1;
}
ascfile.close();
csvFile.close();
return 0;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]