Вам нужно будет отсканировать файл на наличие "\\"
или "\*"
в любом месте кода, который указывает комментарий ( Следовательно, как вы обнаружили комментарий) в вашем коде ), игнорируйте их, а затем проверьте, где они оканчиваются на '\n'
и "*/"
соответственно и продолжайте писать оттуда ...
#include
#include
int main(void) {
FILE * file;
FILE * output;
if (fopen_s(&file, "some_src.c", "r") != 0) {
fprintf(stderr, "File reading failure!");
return 1;
}
if (fopen_s(&output, "preprocess_output.c", "w") != 0) {
fprintf(stderr, "File writing failure!");
return 1;
}
int comment = 0;
char prev_ch, ch;
for (prev_ch = fgetc(file), ch = fgetc(file); ch != EOF; prev_ch = ch, ch = fgetc(file)) {
if (comment == 0 && prev_ch == '/')
{
if (ch == '/')
comment = 1;
else if (ch == '*')
comment = 2;
}
if (comment == 0)
fprintf(output, "%c", prev_ch);
if (comment == 1 && prev_ch != '\\' && ch == '\n')
comment = 0;
if (comment == 2 && prev_ch == '*' && ch == '/')
{
ch = fgetc(file);
comment = 0;
}
}
if (comment == 0)
fprintf(output, "%c", prev_ch);
fclose(file);
fclose(output);
return 0;
}
Примечание: Поскольку многие отмечали, почему я использовал
blockquote>\
слэши в коде вместо/
, попробуйте это Demo kbd> чтобы узнать почему?
Узнать, какие NT считают Ваше приложение, работает под в любой момент времени, сделайте что-то как (в VB.NET):
Dim User = System.Security.Principal.WindowsIdentity.GetCurrent.User
Dim UserName = User.Translate(GetType(System.Security.Principal.NTAccount)).Value
При использовании ASP.NET, эта учетная запись будет соответствовать идентификационным данным пула приложений, который Вы настраиваете использование менеджер по IIS. Обратите внимание, что анонимный пользователь IIS не очень связан с запросами ASP.NET.
Вы могли использовать этот код:
C#
Response.Write("Windows Account which runs ASP.NET is: "
+ Environment.Username);
VB.NET
Response.Write("Windows Account which runs ASP.NET is: " _
& Environment.Username)
при запуске приложения в Visual Studio на ПК (localhost), Вы получите свое имя пользователя. При развертывании веб-приложения ASP.NET на IIS Вы, вероятно, получите учетную запись СЕТЕВОЙ СЛУЖБЫ, потому что это - пользователь по умолчанию рабочий IIS 6.0 (ASPNET на 2000-х IIS 5.0 Windows Server).
Environment.UserName
возвраты в настоящее время зарегистрированный пользователь потока. Page.User
возвраты имя, которое ASP.NET проверяет посредством Аутентификации и этого пользователя в большинстве случаев, независимо от входа в систему Windows, который выполняет текущий поток. Для анонимных запросов Page. Пользователь является пробелом, в то время как Среда. Пользователем будет СЕТЕВАЯ СЛУЖБА.
Как mdb правильно указывает в комментарии на этот ответ, Среду. Имя пользователя просто возвратит переменную среды ИМЕНИ ПОЛЬЗОВАТЕЛЯ, которая установлена на создании процесса и не обновлена в случае олицетворения и такого.
Код C # для ответа vb.net
var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
var userName = user.Translate(typeof (System.Security.Principal.NTAccount));