Как сохранить пользовательский ввод как символ *?

0

В моем основном методе,

int main()
{
        char *words = (char *)"GETGETYETYET";
        char *pattern = (char *)"GET";
        return 0;
}

Вместо * words и * pattern, являющегося предопределенным набором символов, я хочу получить пользовательский ввод, пользователь вводит имя.txt файла, и я хочу, чтобы строки в этом.txt файле сохранялись как (char *), Как я могу это сделать?

  • 0
    Посмотрите на std::string и std::fstream .
  • 0
    Просто обратите внимание, используйте const char * (или лучше std::string ) вместо char * . Модификация строковых литералов - неопределенное поведение, так что нечего выиграть от использования char * .
Теги:
string
char

1 ответ

2

Вы этого не сделаете.

Если вы не хотите заниматься распределением строк, освобождениями и владельцами, с переполнениями буфера и проблемами безопасности, вы просто используете 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*...

  • 0
    Вы действительно прочитали вопрос?
  • 0
    Ага, нет, это не компилируется .
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню