Всем привет, мне нужно переписать пхп скрипт буквально в 15 строк на C++, чтобы его можно было скомпилить на фряхе и ано работало такжекак на пхп,тоесть результат выполнения был такойже вот код Code: <?php set_time_limit(0); ignore_user_abort(1); $array = file('uin.txt'); $count = count($array); $array2 = file('pass.txt'); $count2 = count($array2); $fp = fopen('source.txt', 'w'); flock ($fp, LOCK_EX); for ($n2 = 0; $n2 < $count2; $n2++) { for ($n = 0; $n < $count; $n++) { fputs($fp, intval($array[$n]).';'.$array2[$n2]); } } flock ($fp, LOCK_UN); fclose($fp); ?> так как я знаю тока пхп,сам немогу переписать надеюсь тут найдутся добрые люди знающие оба языка и помогут мне...
Ты уверен что код написан правильно? Если в uin.txt будет и в pass.txt будет После выполнения скрипта в "source.txt" будет
Да именнотак мне и надо,потомучто такой подход на мой взгляд лучше так как будет один пароль пробоваться ко всем номерам,потом другой ко всем и так далее, хотя можно написать 2 версии
Вот, как на php Code: #include <iostream> #include <string> #include <fstream> int main (int argc, char* argv[]) { std::string source, line, uin, pass; std::ifstream uinFile("uin.txt"); std::ifstream passFile("pass.txt"); std::ofstream sourceFile("source.txt"); if (!uinFile.is_open()) { std::cout << "Unable to open file uin.txt\n"; return 1; } if (!passFile.is_open()) { std::cout << "Unable to open file pass.txt\n"; return 1; } if (!sourceFile.is_open()) { std::cout << "Unable to open file source.txt\n"; return 1; } while (!passFile.eof()) { line = ""; getline(passFile, pass); while (!uinFile.eof()) { getline(uinFile, uin); line += uin + ";" + pass + "\n"; } source += line; uinFile.seekg(std::ios::beg); } sourceFile << source; uinFile.close(); passFile.close(); sourceFile.close(); return 0; }
Чета ано нихочет компилицо скопировал все как ты написал, но компилятор выдает ошибки почиму так? Ошибки выдает чтота связанное с синтаксисом... Может это написанно под винду, а ме нужно под FreeBSD... Может быть есть какие различия в том как нужно писать?
# gcc -pthread list.c -o list list.c:1:22: iostream.h: No such file or directory list.c:3:21: fstream.h: No such file or directory list.c: In function `main': list.c:6: error: syntax error before ':' token list.c:7: error: syntax error before ':' token list.c:8: error: syntax error before ':' token list.c:9: error: syntax error before ':' token list.c:10: error: `uinFile' undeclared (first use in this function) list.c:10: error: (Each undeclared identifier is reported only once list.c:10: error: for each function it appears in.) list.c:11: error: syntax error before ':' token list.c:14: error: `passFile' undeclared (first use in this function) list.c:15: error: syntax error before ':' token list.c:18: error: `sourceFile' undeclared (first use in this function) list.c:19: error: syntax error before ':' token list.c:23: error: `line' undeclared (first use in this function) list.c:24: error: `pass' undeclared (first use in this function) list.c:26: error: `uin' undeclared (first use in this function) list.c:29: error: `source' undeclared (first use in this function) list.c:30: error: `std' undeclared (first use in this function) list.c:30: error: syntax error before ':' token
У меня на win mingw все компилит на ура... Меня смущает вот что Попробуй скомпилить мой код не изменяя его. з.ы. мб версия компилятора старая?
# cat list.c Code: #include <iostream> #include <string> #include <fstream> int main (int argc, char* argv[]) { std::string source, line, uin, pass; std::ifstream uinFile("uin.txt"); std::ifstream passFile("pass.txt"); std::ofstream sourceFile("source.txt"); if (!uinFile.is_open()) { std::cout << "Unable to open file uin.txt\n"; return 1; } if (!passFile.is_open()) { std::cout << "Unable to open file pass.txt\n"; return 1; } if (!sourceFile.is_open()) { std::cout << "Unable to open file source.txt\n"; return 1; } while (!passFile.eof()) { line = ""; getline(passFile, pass); while (!uinFile.eof()) { getline(uinFile, uin); line += uin + ";" + pass + "\n"; } source += line; uinFile.seekg(std::ios::beg); } sourceFile << source; uinFile.close(); passFile.close(); sourceFile.close(); return 0; } # gcc -pthread list.c -o list Какая версия компилятора я даже и незнаю...
Ыы все скомпилилось я в этих делах нишарю, но читал что gcc вроде как C/C++ компилятор большое спасибо за помошь!
Чета оно работает не так как запланированно Там какбы накладывается данные друг на друга и получается совсем не то что надо, и только последняя строка записывается как надо ошибка скорей всего в этом участке кода: Комментарии это как я понимаю код while (!passFile.eof()) { // цыкл до момента пока не достигнут конец файла line = ""; // объявляен/обнуляем переменную getline(passFile, pass); // выбираем знчение строки и присваиваем переменной while (!uinFile.eof()) { // цыкл до момента пока не достигнут конец файла getline(uinFile, uin); // выбираем знчение строки и присваиваем переменной line += uin + ";" + pass + "\n"; дописываем значение переменной } source += line; дописываем значение uinFile.seekg(std::ios::beg); сдвиг указателя } если я хоть нимного понял этот код, то пойдее нужно так? Code: #include <iostream> #include <string> #include <fstream> int main (int argc, char* argv[]) { std::string source, uin, pass; std::ifstream uinFile("uin.txt"); std::ifstream passFile("pass.txt"); std::ofstream sourceFile("source.txt"); if (!uinFile.is_open()) { std::cout << "Unable to open file uin.txt\n"; return 1; } if (!passFile.is_open()) { std::cout << "Unable to open file pass.txt\n"; return 1; } if (!sourceFile.is_open()) { std::cout << "Unable to open file source.txt\n"; return 1; } while (!passFile.eof()) { getline(passFile, pass); while (!uinFile.eof()) { getline(uinFile, uin); source += uin + ";" + pass + "\n"; uinFile.seekg(std::ios::beg); } passFile.seekg(std::ios::beg); } sourceFile << source; uinFile.close(); passFile.close(); sourceFile.close(); return 0; }
Актуально! Подскажите правильный ли тот код, который в последнем сообщении, я просто низнаком с этим языком и подправил методом догадки и похожести функций с пхп... Компилить и проверять без одобрения нинхота, боюсь за последствия если чета нитак...
Скомпилил, вот результат: [uin.txt] Code: user1 user2 user3 [pass.txt] Code: pass1 pass2 pass3 pass4 pass5 [source.txt] Code: user1;pass1 user2;pass1 user3;pass1 user1;pass2 user2;pass2 user3;pass2 user1;pass3 user2;pass3 user3;pass3 user1;pass4 user2;pass4 user3;pass4 user1;pass5 user2;pass5 user3;pass5 Если не так, то как?
У меня тот код что дал ты не так робит,вопервых он берет тока первъй пароль,номера берет все но он накладывает на номер пароль,и только последняя строка записывается как нужно,почему я низнаю,а тот код что я дал вобще ничего не записывает в фаил
Файл uin.txt Code: 100184 100680 100682 100692 101158 файл pass.txt Code: oksnyudn djosmnuf 26348256 3hd8j39f d9j37fnh в результате выполнения файл source.txt Code: ;oksnyudn ;oksnyudn ;oksnyudn ;oksnyudn 101158;oksnyudn
Исправил Code: #include <iostream> #include <sstream> #include <string> #include <fstream> int main (int argc, char* argv[]) { std::string source, line, uin, pass; std::ifstream uinFile("uin.txt"); std::ifstream passFile("pass.txt"); std::ofstream sourceFile("source.txt"); if (!uinFile.is_open()) { std::cout << "Unable to open file uin.txt\n"; return 1; } if (!passFile.is_open()) { std::cout << "Unable to open file pass.txt\n"; return 1; } if (!sourceFile.is_open()) { std::cout << "Unable to open file source.txt\n"; return 1; } while (!passFile.eof()) { line = ""; getline(passFile, pass); if (pass == "") continue; while (!uinFile.eof()) { getline(uinFile, uin); if (uin == "") continue; line += uin + ";" + pass + "\n"; } source += line; uinFile.seekg(std::ios::beg); } sourceFile << source; uinFile.close(); passFile.close(); sourceFile.close(); return 0; }