2015-10-24 20 views
-1

因此,我已经完成了所有代码的编写,但我只能弄清楚如何更改预定字符的值,在本例中为e,其中I需要的值与当前字符改变,因为它遍历文本提前如何在一行文本中一次识别单个字符

感谢

static void Encrypt() 
     { 
      int asciiVal; 
      string CurrentLine; 
      StreamReader CurrentReadFile = new StreamReader("EncMe.txt"); 
      StreamWriter CurrentWriteFile = new StreamWriter("temp.txt"); 
      while (!CurrentReadFile.EndOfStream) 
      { 
       string EncLine = ""; 
       CurrentLine = CurrentReadFile.ReadLine(); 
       foreach (char e in CurrentLine) 
       { 
        char CurrentChar = 'e'; 
        asciiVal = (int)CurrentChar; 
        asciiVal = asciiVal + 1; 
        CurrentChar = (char)asciiVal; 
        EncLine = EncLine + CurrentChar; 
       } 
       CurrentWriteFile.WriteLine(EncLine); 
      } 
      CurrentWriteFile.Close(); 
      CurrentReadFile.Close(); 
     } 
+0

'char CurrentChar ='e';'应该是'char CurrentChar = e;' –

+0

我不明白你在问什么。你是否试图在C#中实现凯撒密码?请注意,您并未使用“e”变量。请[编辑]你的问题,包括输入,你得到的输出和你期望的输出。 –

回答

0

它已经有一段时间,因为我已经用C#的工作,但你应该只能够说: asciiVal = (int)e;在你的foreach循环中,你定义了e作为char类型变量,它表示字符串中的单个字符。如果你想使用char CurrentChar变量,那么你可以重写foreach来说:foreach(char CurrentChar in CurrentLine),然后你应该省略char CurrentLine = 'e';行。

这将让你与你的foreach循环如下:

foreach (char CurrentChar in CurrentLine){ 
     asciiVal = (int)CurrentChar; 
     asciiVal += 1; /* If you will only ever increment by 1, you can also 
         use "asciiVal++;" */ 
     EncLine += (char)asciiVal; 
} 

注意:请原谅任何拼写或语法错误。我从我的手机写这个。

相关问题