У меня есть проект, в котором я должен читать из текстового файла и кодировать его содержимое, используя книжный шифр. Первым шагом, который я предполагаю, будет чтение из двух текстовых файлов и подсчет номеров страниц / строк / столбцов (номера страниц определяются разделителем «\ f», а строки определяются «\ n»). Однако я не хочу, чтобы пользователю приходилось каждый раз переименовывать свой файл в «message.txt», чтобы файл мог быть прочитан. Есть ли в любом случае программа на C ++ для чтения любых текстовых файлов, введенных пользователем?
Код моей текущей тестовой программы:
#include <iostream> // Basic I/O
#include <string> // string classes
#include <fstream> // file stream classes
#include <sstream> // string stream classes
#include <locale> // locale class
using namespace std;
// version 0
int main() {
while (!cin.eof()) {
char ch;
cin >> ch;
cout << ch;
}
}
Она получает все из файла и выводит его правильно, однако таким образом, я могу принять только один входной файл. Я надеялся, что смогу сделать что-то вроде этого:
int main( int argc, char* argv[])
так:
argv[0] = program name
argv[1] = book cipher
argv[2] = message file
argv[3] = output file (encoded message goes here)
Есть ли версия C ++ этого? Я попытался прочитать ifstream (argv [1]), который не сработал, как я ожидал, и выдал исключение. Я чувствую, что char * argv [] - это то, что используется в C, но не в C ++, поскольку в C ++ есть строка, а строки не являются массивом char, как в C. Хотите знать, кто-нибудь может написать мне пример, просто чтобы посмотреть, как работает синтаксис для этого в C ++.
И какую функцию ввода я могу использовать для подсчета управляющих символов, таких как '\ n' и '\ f'? Я знаю из Java, я мог бы использовать charAt () и сделать это в al oop или в C, это просто массив символов. Ввод вводит в заблуждение меня в C / C ++, я буду продолжать смотреть на учебники о том, как работают эти различные функции. Любые идеи будут оценены.