В моем основном методе,
int main()
{
char *words = (char *)"GETGETYETYET";
char *pattern = (char *)"GET";
return 0;
}
Вместо * words и * pattern, являющегося предопределенным набором символов, я хочу получить пользовательский ввод, пользователь вводит имя.txt файла, и я хочу, чтобы строки в этом.txt файле сохранялись как (char *), Как я могу это сделать?
Вы этого не сделаете.
Если вы не хотите заниматься распределением строк, освобождениями и владельцами, с переполнениями буфера и проблемами безопасности, вы просто используете std::string
...
Как это:
#include <iostream>
#include <string>
int main() {
std::string a = "abcde";
std::string b;
getline(std::cin, b);
std::cout << a << ' ' << b;
return 0;
}
Предположим, что ваши строки находятся в файле x.txt
, по одному в строке:
#include <iostream>
#include <string>
#include <fstream>
int main() {
std::string line;
std::ifstream f("x.txt");
while( std::getline(f, line) )
std::cout << ' ' << line << '\n';
return 0;
}
Дело в том, что вы действительно не хотите хранить вещи в char*
...
std::string
иstd::fstream
.const char *
(или лучшеstd::string
) вместоchar *
. Модификация строковых литералов - неопределенное поведение, так что нечего выиграть от использованияchar *
.