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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2013, 21:31   #1
gvozdik12
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 22
По умолчанию зацикливание C#

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            FileStream Stream = new FileStream("D:\\f2.txt", FileMode.Open, FileAccess.Read);
            FileStream Stream1 = new FileStream("D:\\g2.txt", FileMode.Open, FileAccess.Read);
            StreamReader r = new StreamReader(Stream);
            StreamReader w = new StreamReader(Stream1);
            string s;
            string d;
            while ((s = r.ReadLine()) != null && (d = w.ReadLine()) != null)
            {
                Console.WriteLine(s);
                Console.WriteLine(d);
                
                    for (int i = 0; i < s.Length; i++)
{
                        while (s[i] != d[i])

                            Console.WriteLine(i);
}

                }

                Console.ReadLine();
            }

            Stream.Close();
            Stream1.Close();
            r.Close();
            w.Close();
           
        }
    }
}
у меня результат повторяется в консоли повторяется бесконечное число раз, как остановить?
gvozdik12 вне форума Ответить с цитированием
Старый 18.03.2013, 00:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

явно зацикливание в операторе while - это же оператор цикла, а внутри цикла ничего не меняется..

ну, не зная, что за задачу Вы решаете (а анализировать код, что он должен, по вашему делать, т.е. какую задачу Вы пытаетесь решить, мне откровенно лень!)
зацикливание можно исправить так:
Код:
                   for (int i = 1; i <= Math.Min( s.Length, d.Length); i++)
                   {
                        if (s[i] != d[i])
                              Console.WriteLine(i);
                   }
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.03.2013, 08:12   #3
gvozdik12
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 22
По умолчанию

задача заключается в том, что из 2х текстовых файлов выводится порядковый номер первого различия
gvozdik12 вне форума Ответить с цитированием
Старый 18.03.2013, 09:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ясно. тогда
1) после первого же различия надо по break прерывать цикл.
2) сравнения символов строк недостаточно. Если символы совпали, надо проверить, совпадают ли длины строк, если нет - можно выдавать символ более длинной строки как несовпадение..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2013, 18:59   #5
gvozdik12
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 22
По умолчанию

это я понимаю, но у меня не получается это реализовать
gvozdik12 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
зацикливание pandaaaaa Паскаль, Turbo Pascal, PascalABC.NET 12 24.01.2012 18:54
Зацикливание C++ Shift_sk Общие вопросы C/C++ 5 18.01.2011 19:01
Рекурсивное зацикливание Alex_Almaty Помощь студентам 8 06.07.2010 07:49
Зацикливание программы Arcanum Общие вопросы Delphi 7 12.04.2010 10:20