Proposed exercise
Create a program to convert simple C programs, such as the following one, to C#:
#include
int main()
{
int a,b;
int i;
scanf("%d", &a);
scanf("%d", &b);
printf("La suma es %d", a+b);
if (a+b > 0)
puts("El resultado es positivo");
printf("La serie es: ");
for (i = 1; i<=a+b; i++)
printf("%d ", i);
}
Note: the resulting program must compile correctly. Test it with other similar C programs.
Output
Solution
using System; using System.IO; class ConvertOfCToCSharp { static void Main() { Console.Write("Name of file: "); string name = Console.ReadLine(); if (!File.Exists(name)) { Console.WriteLine("Not found!"); } else { try { StreamReader fileC = new StreamReader(name); StreamWriter fileCSharp = new StreamWriter(name + ".cp"); string line; do { line = fileC.ReadLine(); if (line != null) { line = line.Replace("#include", "using System;/npublic class Example{"); line = line.Replace("int main()", "public static void Main()"); if (line.Contains("scanf(")) { line = line.Replace("scanf(\"%d\", &", ""); line = line.Replace(");", " = Convert.ToInt32(Console.ReadLine());"); } line = line.Replace("printf","Console.Write"); line = line.Replace("%d", "{0}"); } } while (line != null); } catch (Exception e) { Console.WriteLine("Error, " + e.Message); } } } }