Re: Файли.
Ну, про system ("pause") я не знав, дякую.
І повторю, я вчуся:)Тому дякую за критику, спробую реалізувати ваші поради.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Файли.
Для відправлення відповіді ви повинні увійти або зареєструватися
Ну, про system ("pause") я не знав, дякую.
І повторю, я вчуся:)Тому дякую за критику, спробую реалізувати ваші поради.
Всім велике дякую, код написав - працює. Суто С використати не вдалося,нажаль. Спробую вдосконалити і переписати деякі моменти.
Доречі, про system("pasue"). Я спробував без інклуду <iostream> - не розпізнає і при компіляції -помилка.
Ось сам код. Читає адекватно:)
#include <stdio.h>
#include <iostream>
void main()
{ //reading massive
int n = 0,a; // n - розмір массиву
char *filename = "P:\\if11\\IF11 2\\Dovbysh Arthur\\Programming C\\lab5\\input.txt";
FILE *f;
f = fopen(filename,"r+");
while (!feof(f)) // шукаю кількість елементів
{
fscanf(f,"%d", &a);
n++;
}
int *A = new int[n];
fseek(f, 0, 0);
for (int i = 0; i < n; i++)
fscanf(f, "%d", &A[i]);
fclose(f);
for (int i = 0; i < n; i++)
printf("%d\n",A[i]);
system("pause");
Якщо ви вже fseek юзаєте, то можна просто зробити
fseek(f, 0, SEEK_END);
int n = (int) ftell(f) / sizeof(int);
Потім - ви повністю проігнорували маї зауваження про new та stdlib.
І, наостанок, ви зчитуєте на 1 елемент більше, ніж треба.
Потім - ви повністю проігнорували маї зауваження про new та stdlib.
І, наостанок, ви зчитуєте на 1 елемент більше, ніж треба
Я не проігнорував, але вирішив , що так буде краще.
І елементів зчитує стільки - скільки потрібно. Ви тестили програму?
Якщо ні, то звідки такі висновки ?
Потім - ви повністю проігнорували маї зауваження про new та stdlib.
І, наостанок, ви зчитуєте на 1 елемент більше, ніж требаЯ не проігнорував, але вирішив , що так буде краще.
І елементів зчитує стільки - скільки потрібно. Ви тестили програму?
Якщо ні, то звідки такі висновки ?
Протестував на пустому файлі. Вивело 12.
Втім, дійсно, якщо останній рядок не закінчувати символом нового рядка, то читає правильно. Але в умові ніде про це не сказано.
І так, я прогальмував із підрахуванням - ви ж fscanf-ом читаєте, не fread-ом.
А про C/C++ вже сказано.
Протестував на пустому файлі. Вивело 12.
Втім, дійсно, якщо останній рядок не закінчувати символом нового рядка, то читає правильно. Але в умові ніде про це не сказано.
І так, я прогальмував із підрахуванням - ви ж fscanf-ом читаєте, не fread-ом.
А про C/C++ вже сказано.
Втім, дякую за поради Критика - завжди добре
ги ги, вивчати С++ чи С це насправді другорядне питання, а от шиза то страшне
Майте повагу.
І так, справді , є певна суперечність. Але хто в наш час ідеальний?
Я пишу так як вмію. Чого не вмію, стараюсь навчитись.
Тому якщо не маєте бажання дати якусь корисну пораду, краще взагалі не "флудіть".
Замініть new на calloc, а iostream на stdlib.h.
І так, справді, є певна суперечність. Але хто в наш час ідеальний?
koala
Я пишу так як вмію. Чого не вмію, стараюсь навчитись.
Якщо ви ігноруєте поради Коали, то нічого не страєтесь.
Якщо ви ігноруєте поради Коали, то нічого не страєтесь.
Тобто ігнорую? Я ж сказав, що виправив на варіант С - шний. І він працює.
Тобто тепер буду знати, не знаходите?
Тобто ігнорую? Я ж сказав, що виправив на варіант С - шний. І він працює.
З другої спроби і після мого коментаря.
З другої спроби і після мого коментаря.
Я,звісно, перепрошую.
Але Ваш пост побачив набагато пізніше. Виправив раніше.
Вибачте, але я не вірю в те, що ви якимось чином прочитали мої думки і знаєте напевне, коли я це зробив.
Ви ж програміст. Користуйтеся фактами.
Або ж доведіть сказане.
koala написав:Замініть new на calloc, а iostream на stdlib.h.
Зробив. Працює
Ось тепер це C.
Або ж доведіть сказане.
Метою цього розслідування є доведення того факту, що ви переписали код з другої спроби після копняка від мене і коали, можливо (припускаю, а не стверджую) через нездатність скористуватися гуглем. Докази ґрунтуються на хронологічній послідовності повідомлень, яка недвозначно вказує яка репліка на якому хронологічному місці знаходиться.
Перша ваша репліка з завданням:
Хочу зауважити, що на даний момент вивчаю чисто С. Тому , якщо можна, поясність з точки зору С.
Повідомлення #12 порада від P.Y. про неприпустимість вживання iostream в чистих сях
Повідомлення #14 порада від P.Y. про неприпустимість уживання оператора new в чистих сях
Повідомлення #19 розбір вашого коду коалою з докладним описом всіх помилок
Повідомлення #22 Ваш код, де всі перелічені вище поради проігнорували
Повідомлення #24
Я не проігнорував, але вирішив , що так буде краще.
koala пояснює знову що на що замінити, бо трьох перелічених вище порад вам замало
Замініть new на calloc, а iostream на stdlib.h.
З цієї дискусії я роблю висновк, що це не кодинг, а якась балаканина дурна, порад П.У. мало вистачити для того щоб виправити недоліки програми, koala тут навіть не потрібний, якби ви дослухалися до порад.
З цієї дискусії я роблю висновк, що це не кодинг, а якась балаканина дурна, порад П.У. мало вистачити для того щоб виправити недоліки програми, koala тут навіть не потрібний, якби ви дослухалися до порад.
Що ж, у кожного своя думка.
І , до речі, балаканину почали Ви.
Наразі вважаю, варто завершити "дискусію".
І так, я не використав ці поради, бо з першого разу не вдалося реалізувати їх саме таким чином як мені було потрібно.
Ще однією причиною того, що я не витратив трохи більше часу на розбір помилок є те, що мені був потрібен результат як можна швидше. Завдання виконав.
І ось, вже чисто для себе, я використав вказівки.
А суто від Вас , то ніякої поради, окрім того, що я "шизік" не прочитав.
Для відправлення відповіді ви повинні увійти або зареєструватися