#cpp #файлы #строки #вывод
Короче, по условиям надо записывать строку в файл, если такой там нет, записать, в противном случае, ничего не делать. Вот решил, но выдает в файл крякозябры. Первая функция для определения количества строк в файле, там все окей работает))) #include#include #include #include #include using namespace std; int dlina(){ char *str = new char [1024]; int i=0; ifstream base("1.txt"); while (!base.eof()) { base.getline(str, 1024, '\n'); i++; } base.close(); delete str; return i; } int main() { string a; string b; ifstream fin("2.txt"); FILE *f; f= fopen("2.txt", "a+"); cin>> a; int len,len1; len1=a.length(); len=dlina(); bool l=false; for (int i=0; i >b; if(a==b) l=true; } if(l==false) { fwrite(&a,sizeof(string),1,f); } fin.close(); //fclose(f); return 0; }
Ответы
Ответ 1
записывать с++ строки с помощью с функций вот таким способом fwrite(&a,sizeof(string),1,f); нельзя. Будет писаться совсем не то, что Вы ожидаете. Даже банальная логика подсказывает, что 'sizeof(string)' не зависит от данных, которые находятся в строке. Если Вам нужно записать именно std::string в файл таким способом, делайте так fwrite(a.c_str(),(a.length()+1),1,f); P.S. если пишите на с++, то лучше использовать функции с++.
Комментариев нет:
Отправить комментарий