我正在尝试使用c ++ visual studio 2013发送电子邮件.从网上搜索我发现了一些代码示例,但我仍然无法发送电子邮件.在一些代码中我gt错误包括文件没有这样的文件或目录
#include sys/socket.h
我也尝试过提升,但它只是卡住了.谁能帮我?我试过的最后一个代码:
#include<iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
using namespace std;
#define HELO "HELO 192.168.1.1\r\n"
#define DATA "DATA\r\n"
#define QUIT "QUIT\r\n"
//#define h_addr h_addr_list[0]
//FILE *fin;
int sock;
struct sockaddr_in server;
struct hostent *hp, *gethostbyname();
char buf[BUFSIZ+1];
int len;
char *host_id="192.168.1.10";
char *from_id="rameshgoli@domain.com";
char *to_id="rameshgoli@domain.com";
char *sub="testmail\r\n";
char wkstr[100]="hello how r u\r\n";
/*=====Send a string to the socket=====*/
void send_socket(char *s)
{
write(sock,s,strlen(s));
write(1,s,strlen(s));
//printf("Client:%s\n",s);
}
//=====Read a string …Run Code Online (Sandbox Code Playgroud) 我正在从字符串转换日期和时间.我从我的输入中添加日期部分,如下所示
string joinedString = txtMonth.Text.Trim() + "/" + txtDate.Text.Trim() + "/" + txtYear.Text.Trim();
Run Code Online (Sandbox Code Playgroud)
通常我转换字符串如下
DateTime dt;
if (DateTime.TryParse(joinedString, out dt))
{
lblOutputCulture.Text = dt.ToString();
}
else
{
lblOutputCulture.Text = "Invalid Date Time!!!";
}
Run Code Online (Sandbox Code Playgroud)
如果文化的文化和日期时间格式与我的字符串模式相同,我可以在这里获得日期时间.但如果它像'dd-MM-yy'那样被转换,那么转换就会失败.
为了克服这个问题,我们需要使用InvariantCulture进行解析.为此我发现了2种方法
方法1:使用DateTime.TryParse
if (DateTime.TryParse(joinedString, CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
lblOutput.Text = dt.ToString();
}
else
{
lblOutput.Text = "Invalid Date Time!!!";
}
Run Code Online (Sandbox Code Playgroud)
即使更改了系统的日期时间格式,也会成功转换日期时间.以下优点i)日期和月份输入是1位数或2位数ii)年输入是2位数或4位数
方法2:使用DateTime.TryParseExact
if (DateTime.TryParseExact(joinedString, "M/d/yy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt))
{
lblOutput.Text = dt.ToString();
}
else
{
lblOutput.Text = "Invalid Date Time!!!";
}
Run Code Online (Sandbox Code Playgroud)
这里也将datetime转换为具有特定文化但严格按照我在tryparseexact语句中给出的格式.
但以下是这个问题i)如果我给4位数年份输入它显示无效的日期和时间.如果我将格式更改为'M/d/yyyy',我将无法提供2位数的年份数.就像我添加时间部分一样,我需要给时间部分强制性.
哪一个更好?请提出建议.但主要是我在所有博客和论坛中找到了第二种方法.. …
我跑了这个:
void Main()
{
List<string> strings = new List<string>{"aaa", "z", "a"};
Console.WriteLine(string.Join("\n", strings.OrderBy(k => k)));
}
Run Code Online (Sandbox Code Playgroud)
输出是:
a
z
aaa
Run Code Online (Sandbox Code Playgroud)
这不可能是对的!我在期待
a
aaa
z
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
所以我在C++中遇到了一个叫做虚函数的东西,简而言之就是我所理解的用于在派生/子类中启用函数重载的东西.
所以我们有以下课程:
class MyBase{
public:
virtual void saySomething() { /* some code */ }
};
Run Code Online (Sandbox Code Playgroud)
那么当我们创建一个继承MyBase的新类时,如下所示:
class MySubClass : public MyBase{
public:
void saySomething() { /* different code than in MyBase function */ }
};
Run Code Online (Sandbox Code Playgroud)
MySubClass中的函数将执行自己的saySomething()函数.
要理解它,是否与Java相同,只需在派生类中编写相同的函数名称即可实现相同的功能,这将自动覆盖/重载它?
在C++中实现的目标是什么,你需要额外的步骤,即将基类中的函数声明为虚拟?
先感谢您!:)
PK | PARENT | COMMENT
---+--------+-----------
1 | | I AM ONE
2 | | I AM TWO
3 | 1 | I AM ONE
4 | 1 |
5 | 2 | I AM TWO
6 | 2 | I AM THREE
Run Code Online (Sandbox Code Playgroud)
我想更新不为空COMMENT的行的字段PARENT,以便COMMENT与父项相同。这是预期的结果:
PK | PARENT | COMMENT
---+--------+---------
1 | | I AM ONE
2 | | I AM TWO
3 | 1 | I AM ONE
4 | 1 | I …Run Code Online (Sandbox Code Playgroud)