1 / 1 / 2
Регистрация: 16.12.2011
Сообщений: 47
1

FILE*,fopen,fprintf

20.12.2011, 20:06. Показов 3384. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Закомментируйте код пожалуйста , если можно поподробней и где неправильно поправьте;>
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main(void) {
  FILE* fp;/// создается указатель на переменную типа FILE
  char *p, buf[255] = {'\0'}; // создается указатель и массив
  printf("in str: ");
  scanf("%254[^\n]", buf); // что значит [^\n]?
 
  fp = fopen("dump.txt", "w+"); //  открытие файла на запись и чтение
  for(p = buf;*p ; *p++)       //  вот тут бы поподробней
       fprintf(fp, "%02X ", *p);  // запись в файл в 16 формате?
  fclose(fp);
  system("pause");
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2011, 20:06
Ответы с готовыми решениями:

fprintf
fprintf Вопрос - данная ф-ция перезаписывает весь файл? То есть сначала очищает, а после...

fprintf scanf
Помогите с кодом Хочу сделать считывание с файла и вывод в файл output input #include <stdio.h>...

fwrite, fprintf
Подскажите, что указывается в скобках у этих функций? 1 параметр файл, а что за конст_чар?...

fprintf ошибка сегментирования
Вот такой код #include <stdio.h> #include <stdlib.h> #include <iostream> using namespace...

3
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
20.12.2011, 20:15 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main(void) {
  FILE* fp;/// создается указатель на переменную типа FILE
  char *p, buf[255] = {'\0'}; // создается указатель и массив
  printf("in str: ");
  scanf("%254[^\n]", buf); // %254[^\n] значит "ввести строку не более 254 символов, признак конца - перевод строки", по идее должно быть "%254[^\n]s"
 
  fp = fopen("dump.txt", "w+"); //  открытие файла на добавление (запись без стирания предыдущего содержимого)
  for(p = buf;*p ; *p++)       //  начиная с p = buf до тех пор, пока не встретится нулевой символ, перебирать по одному символу. Тут должно быть просто p++, без *
           fprintf(fp, "%02X ", *p);  // запись очередного символа в файл в 16 формате
  fclose(fp);  // закрытие файла
  system("pause");
  return 0;
}
1
1 / 1 / 2
Регистрация: 16.12.2011
Сообщений: 47
20.12.2011, 22:04  [ТС] 3
спасибо

Добавлено через 1 час 7 минут
Можете еще подсказать как сделать чтобы ввод не заканчивался при нажатии 'Enter'(в консоли) и в созданном файле (dump.txt) при количестве символов больше 20 происходил переход на новую строку?
Тоесть ввожу в консоли например 30 символов , жму энтер ввожу еще 40 итд...
а при нажатии 'Esc' программа закрывается и все сохраняется в файле с лимитом строки в 20 символов.

Добавлено через 40 минут
с вводом разобрался , как сделать ограничение в сохраняемом файле в 20 символов подскажите плс ;P
0
Эксперт С++
1674 / 1046 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
21.12.2011, 19:32 4
Для такого ограничения надо перейти к двум вложенным циклам (один перебирает группы по 20 символов и после каждой выводит условие, второй вложен в первый и выводит все 20 символов в текущей группе) или вставить условие внутрь имеющегося (проверять номер текущего символа, и если он кратен 20, то выводить перевод строки).
0
21.12.2011, 19:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2011, 19:32
Помогаю со студенческими работами здесь

Аналог функции fprintf в с++
Здравствуйте! Я долго искал в гугле аналог функции fprintf в с++, но так и не нашел и решил...

Fprintf пишет в файл с ошибками
Здравствуйте. Имеется программа общения с устройством по COM порту. Так же есть функция записи...

Вывод float через fprintf
Ребят, подскажите как надо прописать fprintf, чтобы вывести у числа float только целую часть....

fprintf не переводит на новую строку
fprintf(fz,"%7s|%7s|%7s|%7s|%7s|\n ",Ndv1,Kd1,Mvx1,Nk1,Urash1,Nper1); не хочет переводить на новую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru