Необходимо сделать некоторое программирование блока и понять расположение памяти хорошо. C является просто межплатформенным блоком, в отличие от Java или других языков. Для использования его правильно нужно понять низкоуровневые детали.
Все сделанные комментарии действительны, но для людей как Вы, кто спрыгивает с высокоуровневых языков к C, имение этого вида опыта было бы более, чем выгодно. С надлежащим пониманием Вы не задавали бы вопросы как этот больше.
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["UserId"].Value = "myUserId";
config.Save(ConfigurationSaveMode.Modified);
Вы можете прочитать о ConfigurationManager здесь
На заметку.
Если что-то в вашем app.config нужно изменить во время выполнения ... возможно, есть лучшее место для хранения этой переменной.
App.config используется для констант. В худшем случае что-то с одноразовой инициализацией.
После изменения значения, вероятно, вы не будете сохранять документ Appconfig.
// update
settings[-keyname-].Value = "newkeyvalue";
//save the file
config.Save(ConfigurationSaveMode.Modified);
//relaod the section you modified
ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Configuration;
using System.Xml;
public class AppConfigFileSettings
{
public static void UpdateAppSettings(string KeyName, string KeyValue)
{
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
foreach (XmlElement xElement in XmlDoc.DocumentElement) {
if (xElement.Name == "appSettings") {
foreach (XmlNode xNode in xElement.ChildNodes) {
if (xNode.Attributes[0].Value == KeyName) {
xNode.Attributes[1].Value = KeyValue;
}
}
}
}
XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
}
}