Форум программистов, компьютерный форум CyberForum.ru

Объясните смысл строк в коде (~20 строк) - C++

Восстановить пароль Регистрация
 
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
03.11.2010, 09:38     Объясните смысл строк в коде (~20 строк) #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main() 
{ 
char text[100]; 
FILE *f = fopen("tekt.txt", "r"); 
int i=0; 
char ch;
// объясните действие каждой строки после этих комментов и до //------------
while((ch = getc(f)) != EOF) {
text[i++]=ch; 
text[i] = '\0';
//-------------
} 
printf(text);
fclose(f);
int iz;
cin >> iz;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dzhej-Dzhej
Заблокирован
03.11.2010, 09:46     Объясните смысл строк в коде (~20 строк) #2
while((ch = getc(f)) != EOF) {//EOF - признак окончания файла, считываем символы(ch = getc(f)), пока не достигнут конец файла
text[i++]=ch; //записываем символ в строку, i++ - переходим на следующую позицию в строке
text[i] = '\0'; //в следующей позиции(теперь текущая) пишем конец строки
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
03.11.2010, 09:47     Объясните смысл строк в коде (~20 строк) #3
Открывает файл "tekt.txt" для чтения, и выводит его содержимое на экран.
Главное обратить внимание на важнейшую api функцию:
C++
1
}
Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
03.11.2010, 09:47  [ТС]     Объясните смысл строк в коде (~20 строк) #4
C++
1
2
3
text[i]=ch;
i=i+1; 
text[i] = '\0';
C++
1
2
text[i++]=ch;
text[i] = '\0';
Они идентичны, так?
Dzhej-Dzhej
Заблокирован
03.11.2010, 09:49     Объясните смысл строк в коде (~20 строк) #5
да, идентичны
еще можно так
C++
1
2
3
text[i]=ch;
i++;//++i; 
text[i] = '\0';
или так
C++
1
2
text[i]=ch;
text[++i] = '\0';
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
03.11.2010, 09:50     Объясните смысл строк в коде (~20 строк) #6
Цитата Сообщение от Ksan Посмотреть сообщение
C++
1
2
3
text[i]=ch;
i=i+1; 
text[i] = '\0';
C++
1
2
text[i++]=ch;
text[i] = '\0';
Они идентичны, так?
По функционалу - да.

Не по теме:

Dzhej-Dzhej, да чтож ты всё время меня опережаешь))

Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
03.11.2010, 09:51  [ТС]     Объясните смысл строк в коде (~20 строк) #7
Dzhej-Dzhej, и, насколько я понял, "text[i] = '\0';" лишь обнуляет следующий массив, что бы небыло непонятных знаков типа "ћ¦Ϥ" и прочих?
Dzhej-Dzhej
Заблокирован
03.11.2010, 09:56     Объясните смысл строк в коде (~20 строк) #8
Цитата Сообщение от Ksan Посмотреть сообщение
"text[i] = '\0';" лишь обнуляет следующий массив
он ставит признак окончания строки(символ), чтоб не вывело text полностью, с теми закарлючками

Не по теме:

Не по теме:
Dzhej-Dzhej, да чтож ты всё время меня опережаешь))

ловкость рук

Ksan
26 / 26 / 0
Регистрация: 02.11.2010
Сообщений: 370
03.11.2010, 10:04  [ТС]     Объясните смысл строк в коде (~20 строк) #9
Всем спасибо. Вопрос исчерпан.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 10:10     Объясните смысл строк в коде (~20 строк)
Еще ссылки по теме:

Написать программу для подсчета общего количества строк в исходном коде C++
C++ Написать программу для подсчета общего количества строк в исходном коде
C++ Динамический список строк. Найти ошибку в коде

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

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
03.11.2010, 10:10     Объясните смысл строк в коде (~20 строк) #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h> // Вставка файла stdio.h
#include <stdlib.h>// Вставка файла stdlib.h
#include <iostream>// Вставка файла iostream
using namespace std; // Будем юзить пострансво имён std
int main() // Заголовок функции, в которой валяется точка входа в программу. Функция возвращает int, а зовут её main
{ // открывающая операторная скобка функции main. Отсюда начинается тело функции
char text[100]; // Декларация массива text из 100 элментов типа char
FILE *f = fopen("tekt.txt", "r"); // Декларация указателя f на динамическое данное типа FILE(динамичскую файловую переменную) и в той же строке создание этого данного открытием для чтения и связыванием с областью памяти файла tekt.txt
int i=0; // Декларация переменной i типа int и в той же строке присваивание её значения 0
char ch; // Декларация переменной ch типа char
// объясните действие каждой строки после этих комментов и до //------------
while((ch = getc(f)) != EOF) // Заголовок цикла с предусловием. Пока ch не равно коду конца файла, цикл будет выполняться и на каждом шаге в ch читается очередной символ из файла, связанного с динамической файловой переменной по адресу f
{// Открывающая операторная скобка цикла. Отсюда начинается тело цикла, то есть те операторы, которые будут повторяться в цикле
text[i++]=ch; // i-тому элементу text присваивается ch, i увеличивается на 1,
text[i] = '\0'; // i-тому элементу text присваивается 0
} // Закрывающая операторная скобка цикла. Здесь заканчивается тело цикла.
printf(text); // Вывод на экран массива text, интерпретируемого в качестве zтерминальной строки.
fclose(f); // Закрываем файл, связанный с файловой переменной по адресу f
int iz; // Декларация файловой переменной iz типа int
cin >> iz; // Ввод переменной iz из потока, связанного с консолью.
return 0; // Возврат значения из функции main
}// Закрывающая операторная скобка функции main. Здесь заканчивается тело функции.
Yandex
Объявления
03.11.2010, 10:10     Объясните смысл строк в коде (~20 строк)
Ответ Создать тему
Опции темы

Текущее время: 03:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru