Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
1

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

03.11.2010, 09:38. Просмотров 538. Ответов 9
Метки нет (Все метки)

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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2010, 09:38
Ответы с готовыми решениями:

Объясните значение трёх строк в коде
DWORD* vtablePtr; //вот здесь, знак '*' обозначает, что это указатель? ...

Векторы, и смысл некоторых строк
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;vector&gt;...

Поясните, пожалуйста, смысл выделенных строк в тексте программы
Поясните, пожалуйста, смысл выделенных строк в тексте программы. Заранее...

Смысл const char* и о том, какой тип строк лучше использовать
Я никак не могу понять смысла const char*. Это строка в стиле C, я знаю. Но чем...

объясните значения строк
Если не сложно , то пожалуйста объясните значения следующих строк: 1) ...

9
Dzhej-Dzhej
Заблокирован
03.11.2010, 09:46 2
while((ch = getc(f)) != EOF) {//EOF - признак окончания файла, считываем символы(ch = getc(f)), пока не достигнут конец файла
text[i++]=ch; //записываем символ в строку, i++ - переходим на следующую позицию в строке
text[i] = '\0'; //в следующей позиции(теперь текущая) пишем конец строки
1
Lerny
56 / 56 / 10
Регистрация: 14.03.2010
Сообщений: 154
03.11.2010, 09:47 3
Открывает файл "tekt.txt" для чтения, и выводит его содержимое на экран.
Главное обратить внимание на важнейшую api функцию:
C++
1
}
1
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
03.11.2010, 09:47  [ТС] 4
C++
1
2
3
text[i]=ch;
i=i+1; 
text[i] = '\0';
C++
1
2
text[i++]=ch;
text[i] = '\0';
Они идентичны, так?
0
Dzhej-Dzhej
Заблокирован
03.11.2010, 09:49 5
да, идентичны
еще можно так
C++
1
2
3
text[i]=ch;
i++;//++i; 
text[i] = '\0';
или так
C++
1
2
text[i]=ch;
text[++i] = '\0';
1
Lerny
56 / 56 / 10
Регистрация: 14.03.2010
Сообщений: 154
03.11.2010, 09:50 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, да чтож ты всё время меня опережаешь))

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

Не по теме:

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

ловкость рук

2
Ksan
27 / 27 / 4
Регистрация: 02.11.2010
Сообщений: 370
03.11.2010, 10:04  [ТС] 9
Всем спасибо. Вопрос исчерпан.
0
taras atavin
4204 / 1767 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
03.11.2010, 10:10 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. Здесь заканчивается тело функции.
1
03.11.2010, 10:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 10:10

Объясните программу сложения строк с использованием указателей
// Программа на СИ ))) #include &lt;stdio.h&gt; int main() { char...

Объясните доступным языком пару строк кода
что обозначает подобный код: #include &lt;iostream&gt; #include &lt;cstdlib&gt; ...

Количество логических строк в коде
Привет! Есть задание: определить количество &quot;логических строк в коде(LLOC) &quot;,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru