Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 23:44   #1
Lotles
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 86
По умолчанию Не пойму как работает цикл

Не пойму почему getchar 2-ой раз запрашивает ввести строку, я же написал в цикле условие, что выполняется, если ch!=10, цикл должен прекратиться

Допустим getchar() дошла до конца строки и ch=10
Далее опять условие цикла, ch!=10, с какого он дальше идет?

Код:
	for (int i=0;ch!=10;i++){
		char ch=getchar();
		new_str_cop[i]=ch;
	}
Код:
#include "stdafx.h"
#include <conio.h>
using namespace std;
char* new_str_cop=new char[50];
void copy(){
	char ch=0;
	for (int i=0;ch!=10;i++){
		char ch=getchar();
		new_str_cop[i]=ch;
	}
	new_str_cop[i]='\0';
}
void editing(){
	int j=0;
	char* new_str_ed=new char[50];
	for(int i=0;i<strlen(new_str_cop);i++){
		if (new_str_cop[i]==9){
			new_str_ed[j]='T';
			j++;
		}
		if (new_str_cop[i]==8){
			new_str_ed[j]='B';
			j++;
		}
		else
			new_str_ed[j]=new_str_cop[i];
		j++;
	}
		cout << new_str_ed << endl;
	}



	void main(){
		copy();
		editing();
	}

Последний раз редактировалось Lotles; 28.11.2010 в 23:48.
Lotles вне форума Ответить с цитированием
Старый 29.11.2010, 00:21   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сделайте проверку на 13.
обычно идет 13 потом 10.(это все ентер)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.11.2010, 00:24   #3
Lotles
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 86
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
сделайте проверку на 13.
обычно идет 13 потом 10.(это все ентер)
Даже если и так, от этого ничего не изменится
Lotles вне форума Ответить с цитированием
Старый 29.11.2010, 02:04   #4
Lotles
Пользователь
 
Регистрация: 02.10.2010
Сообщений: 86
По умолчанию

Немного разобрался
Код:
	char ch=0;
	for (int i=0;ch!=10;i++){
		char ch=getchar();
		new_str_cop[i]=ch;
Вот где прикол
Код:
	for (int i=0;ch!=10;i++){
здесь ch=0 всегда

Возникают вопросы:
Код:
char ch;
for (int i=0;ch!=10;i++){
тут идет проверка ch и компилятор ch принимает за 0

Далее:
Код:
 char ch=getchar();
Потом опять проверка
Код:
 for (int i=0;ch!=10;i++){
почему сейчас то компилятор ch считает 0(почему компилятор выбрал 0, а не 128, если бы мы ввели первый символ А)

Последний раз редактировалось Lotles; 29.11.2010 в 02:08.
Lotles вне форума Ответить с цитированием
Старый 29.11.2010, 02:08   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
char* new_str_cop=new char[50];
void copy(){
	char ch=0;
	for (int i=0;ch!=10;i++){
		ch=getchar();
		new_str_cop[i]=ch;
	}
	new_str_cop[i]='\0';
}
а если так?
а то вы объявляли новую переменную внутри блока.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаю javascript не пойму почему не работает скрипт 4e4en JavaScript, Ajax 8 11.09.2010 19:17
не пойму правильно ли работает программа серг Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 13.05.2010 14:58
Не работает цикл Lisёноk Помощь студентам 5 23.03.2010 21:39
Цикл не работает doniyor Общие вопросы Delphi 1 06.12.2009 15:52
Цикл не работает...? Иринкаа Помощь студентам 6 17.11.2007 00:27