Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <locale.h>
  4.  
  5. int main(int argc, char **argv)
  6. {
  7. setlocale(LC_ALL, "Ru");
  8. FILE *file_ptr; // указатель на файл (задание 1.1)
  9. int N; // количество строк и символов в строках (задание 1.1)
  10. int count = 0; // для подсчета количества строк (задание 1.2)
  11. char ch; // для подсчета количества строк (задание 1.2)
  12. char text[50] = "0"; // строка для чтения из файла
  13. FILE *file_ptr1; // указатель на f2 (задание 1.4)
  14. int a; // для задания 1.3
  15. char tmp; // для задания 1.3
  16. FILE *file_ptr2; // вспомогательный файл для задания 1.3
  17.  
  18. file_ptr = fopen("D:\\f1.txt", "w");
  19.  
  20. if (file_ptr != NULL) {
  21. printf("Введите количество строк в файле и символов в них (не более 10): \n");
  22. scanf("%d", &N);
  23.  
  24. if (N > 10) {
  25. do {
  26. printf("Нужно ввести число не более 10! Повторите ввод: \n");
  27. scanf("%d", &N);
  28. } while (N > 10);
  29. }
  30.  
  31. printf("Введите строки не более %d символов.\n", N);
  32.  
  33. for (int i = 0; i < N; i++)
  34. {
  35. printf("Введите %d-ю строку: \n", (i + 1));
  36. scanf("%s", text);
  37. if (strlen(text) > N) {
  38. do {
  39. printf("Нельзя вводить больше %d символов! Введите строку еще раз: \n", N);
  40. scanf("%s", text);
  41. } while (strlen(text) > N);
  42. fputs(text, file_ptr);
  43. }
  44. else
  45. {
  46. fputs(text, file_ptr);
  47. }
  48. fputs("\n", file_ptr);
  49. }
  50. fclose(file_ptr);
  51.  
  52.  
  53. // вывод числа строк в файле (задание 1.2)
  54. file_ptr = fopen("D:\\f1.txt", "r");
  55. while ((ch = fgetc(file_ptr)) != EOF) {
  56. if (ch == '\n')
  57. ++count;
  58. }
  59. printf("Количество строк в файле: %d\n", count);
  60. fclose(file_ptr);
  61.  
  62.  
  63. // реверс строк в файле (задание 1.3)
  64. file_ptr = fopen("D:\\f1.txt", "r");
  65. file_ptr2 = fopen("D:\\f3.txt", "w");
  66. while (fgets(text, 50, file_ptr)) {
  67. count = strlen(text)-1;
  68. for (a = 0; a < count / 2; a++) {
  69. tmp = text[a];
  70. text[a] = text[count - 1 - a];
  71. text[count - 1 - a] = tmp;
  72. }
  73. fputs(text, file_ptr2);
  74. }
  75. fclose(file_ptr);
  76. fclose(file_ptr2);
  77.  
  78. // копирование из вспомогательного файла в исходный
  79. file_ptr = fopen("D:\\f1.txt", "w");
  80. file_ptr2 = fopen("D:\\f3.txt", "r");
  81. if (file_ptr2 != NULL) {
  82. while (fgets(text, 50, file_ptr2)) {
  83. fputs(text, file_ptr);
  84. }
  85. }
  86. else {
  87. printf("Невозможно открыть файл f3\n");
  88. return 1;
  89. }
  90.  
  91.  
  92. // вывод в f2 (задание 1.4)
  93. file_ptr1 = fopen("D:\\f2.txt", "w");
  94. /*fseek(file_ptr, 0, SEEK_SET);
  95. if (file_ptr1 != NULL) {
  96. while (fgets(text, 50, file_ptr)) {
  97. fseek(file_ptr1, -(count1*N), SEEK_SET);
  98. count1++;
  99. fputs(text, file_ptr1);
  100. }
  101. }
  102. else {
  103. printf("Невозможно открыть файл f2\n");
  104. return 1;
  105. }*/
  106.  
  107.  
  108. // вывод содержимого f2 на экран (задание 1.5)
  109. /*fseek(file_ptr1, 0, SEEK_SET);
  110. while (fgets(text, 50, file_ptr1)) {
  111. printf("%s", text);
  112. }*/
  113.  
  114. fclose(file_ptr);
  115. fclose(file_ptr1);
  116. fclose(file_ptr2);
  117. _getch();
  118. return 0;
  119.  
  120. }
  121. else {
  122. printf("Невозможно открыть файл f1\n");
  123. return 1;
  124. }
  125.  
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement