Программирование | Преподавание | Публикации | Переводы и языки | Прочее | Про меня | En / De / עב |
C: //Ошибки scanf(): int i; char c; scanf("%i", &i); scanf("%c", &c); //считывается перевод строки от предыдущего scanf printf("'%c'", c); scanf("%i", &i); scanf("\n%c", &c); //перевод строки пропускается, считывается следующее значение printf("'%c'", c); do { scanf("%i", &i); //если ввести символ, то попадаем в бесконечный цикл printf("%i\n", i); //во входном потоке есть данные, но они не того формата, который нужен } //и съесть не можем и бросить жалко while (i!=0); do { scanf("%i", &i); printf("%i\n", i); fflush(stdin); //очищаем входной поток в конце итерации, теперь он будет пуст } while (i!=0); do { scanf("%i", &i); printf("%i\n", i); while (getchar()!='\n'); //пропускаем входной поток до перевода строки } while (i!=0); //Проблемы чтения текста из файла: int n; char text[50]; FILE* fp; fp = fopen("file1.txt","r"); fscanf(fp, "%i\n", &n); // '\n' нужен чтобы пропустить символ перевода строки fgets(text, 50, fp); // fgets считывает всю следующую строчку включая перевод строки fclose(fp); text[strlen(text)-1]=0; //выкидываем из прочитанной fgets строчки символ перехода строки. printf("n = %i\ntext = %safter\n", n, text); //printf("%s", strtok(text,"\n")); //другой вариант убрать перевод строки. C++: //Проблемы чтения текста из файла: int n; string str; ifstream fileIn("file.txt"); //открываем файл для чтения fileIn >> n; //читаем число fileIn >> str; //будет прочитано только первое слово в строке, до пробела fileIn.close(); ifstream fileIn("file.txt"); fileIn >> n; //читаем число и остаемся в той же строке getline(fileIn, str); //читаем пустоту, потому что до конца строки ничего нет fileIn.close(); ifstream fileIn("file.txt"); fileIn >> n; //читаем число и остаемся в той же строке fileIn.get(); //"проглатываем" символ перехода строки getline(fileIn, str); //считываем всё до конца новой строки fileIn.close(); //Классы использующие друг друга: //Чтобы ниже не было ошибки "'Teacher' does not name a type" class Teacher; //нужно объявить до класса Student, чтобы он его знал class Student{ private: string name; Teacher* t; //без объявления выше будет ошибка "'Teacher' does not name a type" public: Student(string name, Teacher* t) { this->name = name; this->t = t; } string getSName() { return name; } //здесь только объявляем метод, реализация после класса Teacher void showStudent(); }; class Teacher{ private: string name; Student* s; public: Teacher(string name) { this->name = name; s = nullptr; } string getTName() { return name; } void setStudent(Student2* s) { this->s = s; } void showTeacher() { cout << "I'm teacher, my name is " << name; if (s!=nullptr) { cout << ". My student is " << s->getSName() << endl; } else cout << ". I have no student" << endl; } }; //чтобы не возникло ошибки "invalid use of incomplete type 'class Teacher'" void Student::showStudent(); //метод нужно реализовать после Teacher { //здесь уже нужно знать про метод getTName() cout << "I'm student, my name is " << name; cout << ". My teacher is " << t->getTName() << endl; } int main() { Teacher2 *sok = new Teacher2("Socrates"); Student2 *plat = new Student2("Plato", sok); sok->setStudent(plat); sok->showTeacher(); plat->showStudent(); return 0; } C#: Если при чтение русского текста из файла вместо букв отображаются знаки вопроса, то нужно или сохранить файл в кодировке utf-8 или указать кодировку во втором параметре конструктора StreamReader: StreamReader sr = new StreamReader("file.txt", System.Text.Encoding.Default); MySQL: Создание пользователя в базе и выдача ему всех прав над базой: GRANT ALL PRIVILEGES ON database.* TO user@localhost IDENTIFIED BY "password" Если нужно продолжить автовозрастающее поле с определенного значения (например с 3): ALTER TABLE tableName AUTO_INCREMENT = 3 (c) |
Valid XHTML 1.0 | © DarkEol, 2002–2024 | Valid CSS | Java 11.0.9 |